home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / gfx / imagestu.lha / DocTXT.lha / ImageStudio.txt next >
Text File  |  1995-08-15  |  223KB  |  7,834 lines

  1. ImageStudio, shareware image processing and conversion package for the
  2. Amiga.
  3.  
  4.    Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  5.  
  6.    Welcome to ImageStudio, shareware image processing and conversion
  7. package for the Amiga.
  8.  
  9.    This document applies to version 2.2.x, written on 21st August 1995,
  10. Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  11.  
  12. Introduction
  13. ************
  14.  
  15.    This chapter gives a brief introduction into the features offered by
  16. the program.
  17.  
  18. Copyright and Disclaimer
  19. ========================
  20.  
  21.    No guarantee of any kind is given that the programs described in
  22. this document are 100% reliable. You are using this material at your
  23. own risk. The authors *can not* be made responsible for any damage
  24. which is caused by using these programs.
  25.  
  26.    The unregistered package is freeware, but still copyright by Andy
  27. Dean and Graham Dean. This means that you can copy it freely as long as
  28. you don't ask for a more than nominal copying fee.
  29.  
  30.    The registered version of the program and its associated keyfile
  31. *may not* be freely distributed.
  32.  
  33.    The GIF loader/saver module (gif.isio) remains freely-distributable
  34. for both the registered and unregistered versions of the program. No
  35. charge is made for this module.
  36.  
  37.    Permission is granted to include the unregistered package in
  38. Public-Domain collections, especially in the excellent Fred Fish Amiga
  39. Disk Library (including CD ROM versions of it). The distribution file
  40. may be uploaded to Bulletin Board Systems or FTP servers. If you want
  41. to distribute this package you must not remove or alter any of the
  42. supplied files, although the files may be re-compressed using any Amiga
  43. archiver program.
  44.  
  45.    This program (or parts of it) may not be included or used in
  46. commercial programs unless by written permission from the authors.
  47.  
  48.    Installer and Installer project icon (c) Copyright 1991-93
  49. Commodore-Amiga, Inc.  All Rights Reserved. Reproduced and distributed
  50. under license from Commodore.
  51.  
  52.    INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  53. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  54. RESPONSIBILITY IS ASSUMED.
  55.  
  56.    amigaguide.library (c) Copyright 1991-93 Commodore-Amiga, Inc. All
  57. Rights Reserved. Reproduced and distributed under license from
  58. Commodore.
  59.  
  60.    AMIGAGUIDE SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  61. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  62. RESPONSIBILITY IS ASSUMED.
  63.  
  64.    Jonathan Forbes, the author of LX, has granted permission to include
  65. the unmodified Version 1.03 LX executable by itself (i.e. without
  66. documentation) with any PUBLIC DOMAIN or SHAREWARE package, provided
  67. that a brief credit note is included in the program's documentation
  68. (see Credits).
  69.  
  70. Machine requirements
  71. ====================
  72.  
  73.    ImageStudio requires the following system to run:
  74.  
  75.    * Workbench 2.04 or above.
  76.  
  77.    * Around 1 megabyte of free memory.
  78.  
  79.    * Several megabytes of free hard disk space.
  80.  
  81.    If ImageStudio is run on an AGA machine (A1200 or A4000), it will
  82. use the new display modes and palette routines to improve the quality
  83. of the internal viewer images.
  84.  
  85. Brief description
  86. =================
  87.  
  88.    ImageStudio is written for the casual graphics user who wishes to
  89. convert or manipulate various graphics formats on a modest Amiga
  90. system. There are several commercial offerings available, however the
  91. casual user is paying a lot of money for many facilities and options
  92. they would probably never use.
  93.  
  94.    Bitmap graphics, by their nature, usually require large amounts of
  95. RAM. One of the main objectives of ImageStudio was to reduce this
  96. burden by utilising virtual memory - most users have more spare hard
  97. disk space than spare RAM.
  98.  
  99.    ImageStudio works with several buffers at any one time (dependant on
  100. how many levels of undo are specified), each of these buffers can hold
  101. either colour-mapped or 24-bit images. For a detailed description of
  102. colour-mapped and 24-bit images, See Image types.
  103.  
  104.    ImageStudio comes with a fully featured ARexx port, which allows the
  105. writing of macro scripts to automate repetative processes and also
  106. allows communication with other ARexx aware programs. Again, ARexx has
  107. the reputation of being "something pretty difficult", so we've
  108. simplified the use of ARexx in ImageStudio by allowing the user to
  109. create, edit and run scripts entirely within ImageStudio - ImageStudio
  110. even provides a blank template as a starting point for each new script.
  111.  
  112. List of features
  113. ================
  114.  
  115.    General:
  116.    * Full 24-bit image buffers, with optimizations for colour-mapped
  117.      (palette based) images.
  118.  
  119.    * Up to 100 levels of undo / redo.
  120.  
  121.    * User configurable virtual memory.
  122.  
  123.    * Fully font sensitive, style guide complient, user interface.
  124.  
  125.    * Fully featured, easy to use, ARexx interface.
  126.  
  127.    * Modular loaders and savers.
  128.  
  129.    * User saveable preferences.
  130.  
  131.    * Operations applicable to the whole image or a selected region.
  132.  
  133.    * Up to 256 greyshade preview window (with optional dither).
  134.  
  135.    * Zoom on preview window.
  136.  
  137.    * Internal / external viewers (external for third party 24-bit
  138.      graphics cards).
  139.  
  140.    * Loading / saving / manipulating of AGA image formats (e.g. 256
  141.      colours, HAM8) on non-AGA machines.
  142.  
  143.    * Max image size of 32000 x 32000 (crops images to 512 x 512 in the
  144.      unregistered version).
  145.  
  146.    * Copy / paste to / from the system clipboard.
  147.  
  148.    * Runs on all Workbench 2.04+ Amiga's - utilises AGA chipset if
  149.      available.
  150.  
  151.    * Online AmigaGuide help, as well as ASCII, TeX `.dvi' and
  152.      PostScript documentation.
  153.  
  154.    * Multi-level help error requesters.
  155.  
  156.    * Public screen.
  157.  
  158.    * Requires no third party libraries or utilities.
  159.  
  160.    Import:
  161.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra
  162.      halfbright, ILBM24)
  163.  
  164.    * BMP
  165.  
  166.    * Datatypes (with Workbench3.0 and above)
  167.  
  168.    * GIF (conforming to GIF87a or GIF89a)
  169.  
  170.    * IFF-DEEP
  171.  
  172.    * JPEG (conforming to JFIF standard)
  173.  
  174.    * PCX
  175.  
  176.    * PNM (PBM, PGM, PPM, ASCII and binary)
  177.  
  178.    * QRT (DKB, POV)
  179.  
  180.    * SGI
  181.  
  182.    * Targa
  183.  
  184.    * TIFF
  185.  
  186.    * VMEM (internal virtual memory format)
  187.  
  188.    Export:
  189.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra
  190.      halfbright, ILBM24)
  191.  
  192.    * BMP
  193.  
  194.    * EPS
  195.  
  196.    * GIF (conforming to GIF87a or GIF89a)
  197.  
  198.    * IFF-DEEP
  199.  
  200.    * JPEG (conforming to JFIF standard)
  201.  
  202.    * PCX
  203.  
  204.    * PNM (PBM, PGM, PPM, ASCII and binary)
  205.  
  206.    * QRT (DKB, POV)
  207.  
  208.    * SGI
  209.  
  210.    * Targa
  211.  
  212.    * TIFF
  213.  
  214.    * VMEM (internal virtual memory format)
  215.  
  216.    Colour Balance:
  217.    * All operations are available to the R,G,B components separately.
  218.  
  219.    * Brightness ( upto ±100%)
  220.  
  221.    * Contrast (non to full)
  222.  
  223.    * Gamma ( + and - )
  224.  
  225.    Convolution:
  226.    * Many supplied convolution filters.
  227.  
  228.    * User definable convolutions, load and save to disk.
  229.  
  230.    Effects:
  231.    * Built in effects: Dynamic range expansion, FlipX, FlipY, RollX,
  232.      RollY, Negative, Greyscale, Highlight, Shadow, Random, Pixelize,
  233.      Remove isolated pixels.
  234.  
  235.    Scale:
  236.    * Crop to selected region.
  237.  
  238.    * Increase / decrease scale by percentage or absolute image size.
  239.  
  240.    * Simple scale or colour averaged.
  241.  
  242.    Colour reduction:
  243.    * Increase colour mapped images to 24-bit.
  244.  
  245.    * Decrease number of colours in 24-bit or colour mapped images via
  246.      Heckbert median cut algorithm.
  247.  
  248.    * Dithers available for colour reduction: None, Floyd-Steinberg,
  249.      Burkes, Stucki, Sierra, Jarvis, Stevenson-Arce.
  250.  
  251.    Palette:
  252.    * Edit palette colours and ranges.
  253.  
  254.    * Save current palette.
  255.  
  256.    * Force palette onto current image, dithering if necessary (all
  257.      dithers available).
  258.  
  259. Shareware version
  260. =================
  261.  
  262.    To encourage users to register, the freely distributable version of
  263. ImageStudio will crop images to 512x512 pixels. All other operations
  264. are available.
  265.  
  266.    For details on how to register, See How to register.
  267.  
  268. Starting ImageStudio
  269. ====================
  270.  
  271.    ImageStudio can be started from either the Workbench or CLI. From
  272. the Workbench it is simply a case of double-clicking on the icon.
  273. ImageStudio supports shift-clicking on a file to start the program with
  274. (see the Workbench manual for more information).
  275.  
  276.    To start ImageStudio from the CLI, simply type:
  277.  
  278.      run ImageStudio [filename]
  279.  
  280.    where `filename' is an optional file to load in at startup. The full
  281. range of tooltypes is supported, and can be appended to the CLI
  282. command. For example:
  283.  
  284.      run ImageStudio "SCREENNAME=Image2" "PREVIEWDITHER=YES" [filename]
  285.  
  286.    would start the program on a public screen named `Image2' with
  287. preview dithering on. See Tooltypes, for a full list of available
  288. tooltypes.
  289.  
  290. Upgrading from version 1.x.x
  291. ============================
  292.  
  293.    All versions of ImageStudio from version 2.0.0 require a *keyfile*
  294. to work fully.
  295.  
  296.    Users who have registered the ImageStudio package after v2.0.0 will
  297. be provided with a unique keyfile that can be used immediately.
  298.  
  299.    Users who have registered v1.x.x of the ImageStudio package will
  300. have to create their own keyfile using the `Create keyfile' option
  301. under the `Project' menu. See Create_keyfile, for more details.
  302.  
  303.    The idea of the keyfile is that once a keyfile has been created, it
  304. can be placed somewhere where all the programs in the ImageStudio
  305. package can access it. This is typically either the ImageStudio drawer
  306. or the `S:' directory. The user should never need to create another
  307. keyfile, it should work with all future versions of the software; for
  308. this reason, it is suggested that the keyfile is backed up and kept
  309. somewhere safe, as we will be unwilling to give out replacements should
  310. you loose it.
  311.  
  312.    It should also be noted that each keyfile is unique to each user,
  313. and your keyfile should not be given to others. If the number of
  314. registrations should drop due to people abusing the keyfile scheme and
  315. distributing pirate versions of the program, we shall be forced to do
  316. one or more of the following:
  317.  
  318.   1. Stop providing free upgrades. All programs will be individually
  319.      stamped and all upgrades must be paid for.
  320.  
  321.   2. Remove online help and provide printed manuals instead. This will
  322.      naturally raise the price substantially.
  323.  
  324.   3. Sell the software to a software publisher for commercial
  325.      distribution. This is likely to lead to a large price increase.
  326.  
  327.   4. Stop developing ImageStudio and related products.
  328.  
  329.    We see no reason why we should have to resort to any of these
  330. measures, but if you're using a pirated copy of ImageStudio now and you
  331. refuse to register, you *WILL* force this upon us.
  332.  
  333.    If you are using a pirate copy of ImageStudio, so will hundreds of
  334. others. A hundred orders to us is the difference between us writing the
  335. next version of the program, and us abandoning it. It really is your
  336. choice.
  337.  
  338. Configuring ImageStudio
  339. =======================
  340.  
  341.    In order to benefit from ImageStudio's virtual memory, it is
  342. recommended that the default location used for the storage of the
  343. temporary files is changed. The default location for the storage of
  344. these files is `T:' which is usually in RAM - we want to move this out
  345. onto harddisk.
  346.  
  347.    To do this, select `Prefs' from the `Project' menu and open up the
  348. prefs requester. Change the TEMPDIR preference to the desired location
  349. for the temporary files. See Prefs, for more information on changing
  350. preference variables.
  351.  
  352.    It is suggested that a drawer be made on a harddisk partition with
  353. lots of space to store these files. For example, make a drawer in your
  354. `Work:' partition called `tmp', and change the TEMPDIR preference to
  355. read `Work:tmp'.
  356.  
  357. Tutorial
  358. ********
  359.  
  360.    This chapter introduces ImageStudio by way of a few tutorials
  361. demonstrating commonly performed operations.
  362.  
  363. Changing the image format
  364. =========================
  365.  
  366.    The simplest use of ImageStudio is just as a file format converter;
  367. See File formats, for details about the supported file formats.
  368.  
  369.    In this example we will change the image format of the
  370. `FW14B_250x250.gif' from GIF to IFF-ILBM.
  371.  
  372.   1. Load the file `FW14B_250x250.gif' from the `Pics' drawer. To do
  373.      this, select `Open' from the `Project' menu. When the file
  374.      requester opens, select the file and it will load into
  375.      ImageStudio. The greyscale preview will show the image.
  376.  
  377.   2. The Infobar at the bottom of the screen shows the current image
  378.      size and number of colours, as well as a fuelgauge showing
  379.      progress when applicable. The current co-ordinates of the pointer
  380.      are also shown when the preview window is active.
  381.  
  382.   3. Open the save requester. To do this, select `Save' from the
  383.      `Project' menu. A requester will open, containing (amongst other
  384.      things) possible save formats.
  385.  
  386.   4. Select the file format to save. To do this, click on `IFF-ILBM' in
  387.      the listview.
  388.  
  389.   5. Change the filename to avoid overwriting the original file. To do
  390.      this, type the new filename - `FW14B_250x250.ilbm' into the
  391.      `Filename' string gadget.
  392.  
  393.   6. Save out the file by clicking on the `Save' gadget.
  394.  
  395.    The file will now be saved out as a 256 colour IFF-ILBM onto the
  396. disk.
  397.  
  398.    Note:
  399.  
  400.    * All time consuming operations show their progress in the Infobar's
  401.      fuelgauge and can be aborted by clicking on the `Abort' gadget.
  402.  
  403. Changing the number of colours
  404. ==============================
  405.  
  406.    Often it is necessary to reduce the number of colours in an image,
  407. either to reduce the file size or produce images compatible with
  408. non-AGA software.
  409.  
  410.    In this example we will reduce the number of colours in the
  411. `FW14B_250x250.gif' image from 256 colours to 16 colours.
  412.  
  413.   1. Load in the `FW14B_250x250.gif' from the `Pics' drawer, if it not
  414.      already loaded.
  415.  
  416.   2. Open the colours requester by selecting `Colours...' from the
  417.      `Process' menu.
  418.  
  419.   3. The gadgets in the requester will show that the image is a 256
  420.      colour colour-mapped image. Change the number of colours to 16 by
  421.      clicking on the cycle gadget or sliding the `No. of colours'
  422.      slider.
  423.  
  424.   4. Leave the `Colour choice' and `Dithering' gadgets for now.
  425.  
  426.   5. Click on `OK' to perform the operation.
  427.  
  428.   6. When the operation is complete, view the image with the internal
  429.      viewer by selecting `View' from the `View' menu. A 16 colour Lores
  430.      image will be displayed.
  431.  
  432.   7. Remove the internal viewer by clicking the right mouse button.
  433.  
  434.    The colour reduced image should contain all the main colours used in
  435. the original image (blue, yellow, red and grey), but should contain
  436. less shades of the colours. To give the impression of more colours,
  437. dithering can be used to mix pixels of the chosen colours. To perform
  438. the last operation with dithering:
  439.  
  440.   1. Undo the colour reduction operation to return to the original 256
  441.      colour image. To do this, select `Undo' from the `Edit' menu.
  442.  
  443.   2. Bring up the colours requester as before and select 16 colours.
  444.      Also change the `Dithering' gadget from `None' to
  445.      `Floyd-Steinberg'.
  446.  
  447.   3. Click on `OK' to perform the operation.
  448.  
  449.   4. View as before.
  450.  
  451.    The image will now perform more gradual changes to colour changes.
  452.  
  453. Changing the colour balance
  454. ===========================
  455.  
  456.    When receiving images from external sources (scanners, frame
  457. grabbers) it is ofter necessary to change to "colour balance" of the
  458. image. Frame grabbers, for example, may have too much `red' in the
  459. image.
  460.  
  461.    In this example we shall see the effects on the
  462. `ColourFace_200x250RED.ham6' image of altering the colour balance.
  463.  
  464.   1. Load in the `ColourFace_200x250RED.ham6' image from the `Pics'
  465.      drawer. As the file is in HAM6 format, it is turned into 24-bit
  466.      internally.
  467.  
  468.   2. View the image with the internal viewer. As the Amiga doesn't have
  469.      true 24-bit screenmodes, the internal viewer will approximate the
  470.      24-bit image with a HAM preview screen (HAM6 on ECS machines, HAM8
  471.      on AGA machines). It should be obvious from the viewer that the
  472.      image is too red.
  473.  
  474.   3. Open the balance floating palette if it is not already open. Do
  475.      this by selecting `Show balance' from the `Tools' menu.
  476.  
  477.   4. To remove some of the red component, make sure that we are only
  478.      dealing with the red component. To do this, make sure that only
  479.      the `Red' checkbox at the bottom of the floating palette is
  480.      checked.
  481.  
  482.   5. Reduce the brightness slider, by say 20%. The graph on the right
  483.      of the floating palette will reflect the change (see Show_balance
  484.      for more details on the graph).
  485.  
  486.   6. View the image again, this time the image should have lost much of
  487.      its unnatural red tint.
  488.  
  489.    Brightness and contrast work in very much the same way as a TV set,
  490. but gamma may need some explanation.
  491.  
  492.    When printing an image out, it is usual for light colours to be
  493. resolved well and dark colours to be reduced to a dark mush. It is
  494. therefore preferable to have some way boost the brightness of the
  495. mid-dark colours whilst still leaving the very light colours light and
  496. the very dark colours dark. Gamma is the operator to perform this
  497. change. By applying a small amount of positive gamma, a much better
  498. balanced image can be produced for printing out.
  499.  
  500.    See Show_balance, for more information on the balance floating
  501. palette.
  502.  
  503. Applying an effect
  504. ==================
  505.  
  506.    ImageStudio has many built in effects for performing commonly used
  507. operations.
  508.  
  509.    This example will remove some noise from a region of
  510. `HappyFace_240x250.bmp', a simulated scanned image.
  511.  
  512.   1. Load in the `HappyFace_240x250.bmp' image from the `Pics' drawer.
  513.  
  514.   2. The image represents what may happen if you hand scan an image
  515.      into the computer - lots of "noise".
  516.  
  517.   3. Open the effects floating palette if it is not already open. Do
  518.      this by selecting `Show effects' from the `Tools' menu.
  519.  
  520.   4. Select `Remove isolated pixels' in the listview of the floating
  521.      palette. If you clicked on the `Apply' button now, the effect
  522.      would be applied to the whole image. To compare the image before
  523.      and after the effect, we'll only apply the effect to the left hand
  524.      side of the image.
  525.  
  526.   5. Open the `Region co-ords' requester by selecting `Region
  527.      co-ords...' from the `Edit' menu. To select the left hand side of
  528.      the image, set the following values in the gadgets: Min x = 0, Min
  529.      y = 0, Width = 120, Height = 250. Make sure that the radio button
  530.      on the left of the requester shows that the Width / Height are
  531.      being used, not the Max values; click on `Ok'.
  532.  
  533.   6. A region of "crawling ants" will show the selected region.
  534.  
  535.   7. Click on `Apply' of the effects floating palette. The `Remove
  536.      isolated pixels' effect will be applied to the selected region.
  537.  
  538.   8. The left of the image will have had a lot of the noise
  539.      automatically removed. Clear the selected region by clicking in
  540.      the preview window.
  541.  
  542.    Note:
  543.    * Not all effects can be applied to regions and whole images. See
  544.      Effects, for a comprehensive description of all the available
  545.      effects.
  546.  
  547.    See Show_effects, for more information on the effects floating
  548. palette.
  549.  
  550. Applying a convolution
  551. ======================
  552.  
  553.    Convolution is a powerful image processing tool, ImageStudio allows
  554. the user to define their own convolution filters.
  555.  
  556.    This example will apply a `Texture' filter to the
  557. `CheetahFace_250x200.ilbm' image.
  558.  
  559.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  560.      drawer.
  561.  
  562.   2. The `CheetahFace_250x200.ilbm' image is a 32 colour colour-mapped
  563.      image and convolution only works in 24-bit (see Show_convolves for
  564.      information on how convolves actually work). We therefore need to
  565.      turn the image into a 24-bit.
  566.  
  567.   3. Open the colours requester and click on the `16 million colours'
  568.      radio button on the left. Click on `OK'. The image in converted
  569.      into 24-bit.
  570.  
  571.   4. Open the convolves floating palette if it is not already open. Do
  572.      this by selecting `Show convolves' from the `Tools' menu.
  573.  
  574.   5. There should be many convolution filters in the list, click on
  575.      `Texture'.
  576.  
  577.   6. Apply the convolution filter to the image by clicking on `Apply'
  578.      at the bottom of the floating palette.
  579.  
  580.   7. After the filter has been applied, you could view the result with
  581.      the internal viewer in 24-bit, but for a clearer image we'll
  582.      convert it back to 32 colours.
  583.  
  584.   8. Open the colours requester, select `No. colours' = 32 and `Dither'
  585.      = `None'. Click on `OK'.
  586.  
  587.   9. Now view the 32 colour image with the internal viewer. The image
  588.      now has a rough paper(?) texture applied to it.
  589.  
  590.    Note:
  591.  
  592.    * There are many commonly used convolution filters available, it is
  593.      up to the user to build a collection suitable filters for their
  594.      own use.
  595.  
  596.    See Show_convolves, for more information on the convolves floating
  597. palette.
  598.  
  599. Scaling the image
  600. =================
  601.  
  602.    In this example we will scale the `CheetahFace_250x200.ilbm' image
  603. from 250 x 200 pixels down to 80 x 40 (icon size).
  604.  
  605.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  606.      drawer.
  607.  
  608.   2. Open the scale requester by selecting `Scale...' in the `Process'
  609.      menu.
  610.  
  611.   3. Set the `Width' = 80 and `Height' = 40. Click on `OK'.
  612.  
  613.   4. The image is re-scaled to that of an icon.
  614.  
  615.    The finish the creation of the icon, we can load it into Commodore's
  616. `IconEdit' program. Both ImageStudio and IconEdit support the
  617. clipboard, so we can copy the image into the clipboard from ImageStudio
  618. and paste it into IconEdit.
  619.  
  620.   1. Copy the image to the clipboard by selected `Copy' in the `Edit'
  621.      menu of ImageStudio.
  622.  
  623.   2. Run IconEdit from the `Tools' drawer of your system partition.
  624.  
  625.   3. Select `Paste' from IconEdit's `Edit' menu. The image will be
  626.      copied into IconEdit for final editing.
  627.  
  628. Menu options
  629. ************
  630.  
  631.    This chapter describes ImageStudio's menu options in detail.
  632.  
  633.    Selecting a main menu from the list below will give a list of
  634. sub-menu options.
  635.  
  636. Project
  637. =======
  638.  
  639.    Select the submenu you wish to investigate.
  640.  
  641. Open
  642. ----
  643.  
  644.    Keyboard shortcut - `Amiga - O'
  645.  
  646.    This is how the user loads in an image into the program.
  647.  
  648.    A file requester will appear, through which the user can select a
  649. file to open. Upon selecting a file, ImageStudio will test the file
  650. against its known file formats - loading the file if the image type is
  651. recognised. If the image format is not recognised, an error will be
  652. shown.
  653.  
  654.    In most cases the image will load directly into ImageStudio; however
  655. in the case of HAM6 and HAM8 formats the image is converted into 24-bit
  656. data as it is loaded in, as ImageStudio cannot work directly on HAM
  657. images. For a detailed description of colour-mapped and 24-bit images,
  658. See Image types.
  659.  
  660. Save
  661. ----
  662.  
  663.    Keyboard shortcut - `Amiga - S'
  664.  
  665.    The save requester allows the user to choose the filename for the
  666. saved image as well as the image's format.
  667.  
  668.    To change the filename, either click in the string gadget and edit
  669. the filename directly or click on the `Choose...' gadget to select the
  670. filename with a file requester.
  671.  
  672.    To change the image format of the file to be saved, click in the
  673. listview on the appropriate format. Depending on the format selected,
  674. depends on whether the `Options...' button is available. Some formats
  675. (e.g. IFF-ILBM) have further options available by clicking on the
  676. `Options...' button.
  677.  
  678.    When the user has selected the filename and the image format, the
  679. file can be saved by clicking on `OK' or no action can be performed by
  680. clicking on `Cancel'. If the currently selected filename already
  681. exists, the user will be warned that they are about to overwrite it.
  682.  
  683. Screen
  684. ------
  685.  
  686.    The user may select the current screen's resolution, number of
  687. colours and font.
  688.  
  689. Screen mode
  690.      The screenmode requester allows the user to change the properties
  691.      of the current screen. Click on the desired screenmode as well as
  692.      the size, number of colours and overscan settings. To bring the
  693.      changes into effect, click on `OK' else to perform no action click
  694.      on `Cancel'.
  695.  
  696. Screen font
  697.      The screenfont requester allows the user to choose the font to be
  698.      used in all the ImageStudio windows and menus. Any Amiga font can
  699.      be used, although if a font which is too large to allow some of
  700.      the windows to fit on the screen is chosen, the program will
  701.      default back to using topaz 8.
  702.  
  703.      Under Workbench2.04, not all gadgets will scale properly with
  704.      different sized fonts. Checkbox gadgets and mutual exclude (radio
  705.      button) gadgets will remain a constant size, which may cause some
  706.      windows to look slightly strange with very large or very small
  707.      font sizes.
  708.  
  709. Prefs
  710. -----
  711.  
  712.    The user may configure the program to their own needs with the prefs
  713. requester. The requester consists of a scrolling list with all the
  714. available preferences, several gadgets that show the current tooltype
  715. value whilst allowing the user to change it, and a couple of checkboxes
  716. for saving the current screenmode and window positions. When the user
  717. is happy with the current values, they may save them as defaults by
  718. clicking `Save', use them for the current session by clicking `Use' or
  719. discard the changes by clicking `Cancel'.
  720.  
  721.    The preferences in the list are separated into string values (e.g.
  722. filenames, ARexx port name etc...), numeric values (e.g. virtual memory
  723. pagesize, number of undo buffers etc...) and boolean, or ON / OFF
  724. values (e.g. Online AmigaGuide help, splash window on startup etc...).
  725. A short description of the preference is shown on the left of the list,
  726. the tooltype (see Tooltypes) name is shown below.
  727.  
  728.    To change a preference value, click on its name in the list. The
  729. current value will be copied to the text or numeric value below; the
  730. exception to this is a boolean preference, see below. The value is
  731. changed by changing the displayed value in the gadget, it will be
  732. stored as this value if another preference is selected or the user
  733. presses `Save' or `Use'. If a string preference is selected that
  734. requires a filename to be chosen, the `Choose...' gadget can be used to
  735. select the desired filename from a file requester.
  736.  
  737.    Boolean preferences are changed by double-clicking on their entries
  738. in the list. The value will toggle between the two states.
  739.  
  740.    If the user wishes to save the current screenmode or window
  741. positions to be the defaults next time the program is started, they may
  742. click on the `Save screenmode' and / or the `Save window positions'
  743. checkboxes.
  744.  
  745.    When changing any of the preferences that require the use of an
  746. external program (e.g. the external text editor), the string must be
  747. formatted to contain a `%s' placed where the filename should be placed.
  748.  
  749.    The default string of
  750.  
  751.      run sys:Tools/Memacs <NIL: >NIL: "%s"
  752.  
  753.    for the `TEXTEDITOR' preference would run Commodore's Micro-emacs
  754. text editor to edit files. It is recommended that the "run" is added at
  755. the start of the string to run the program in the background (i.e.
  756. ImageStudio doesn't have to wait for the text editor to finish) and
  757. that the double-quotes are placed around the `%s' to allow for
  758. filenames containing spaces.
  759.  
  760.    The preferences values may also be read (see ARexx_PREF_GET) and
  761. written (see ARexx_PREF_SET) from ARexx.
  762.  
  763. About
  764. -----
  765.  
  766.    This brings up a small requester containing information about the
  767. program version number and the user name (only in registered version).
  768.  
  769. Info
  770. ----
  771.  
  772.    This brings up an information requester containing memory and file
  773. usage information.
  774.  
  775.    The `Memory' figures are the amount of RAM used by the buffers, the
  776. `VMem' figures are the amount of disk space used by the virtual memory.
  777.  
  778.    At the bottom of the requester the amount of free RAM and ARexx port
  779. name is shown.
  780.  
  781. Help
  782. ----
  783.  
  784.    Keyboard shortcut - `Amiga - H'
  785.  
  786.    This brings up the main page of the AmigaGuide document.
  787.  
  788.    In order for AmigaGuide help to work, the following must be
  789. satisfied:
  790.  
  791.   1. Commodore's AmigaGuide help has to be installed on your system.
  792.      This comes with Workbench3.0+ and can be freely obtained for
  793.      earlier versions of Workbench.
  794.  
  795.   2. The preference `HELP' must be `ON' (see Prefs).
  796.  
  797.   3. The *full* filename of the AmigaGuide helpfile must be given in
  798.      the `HELPFILE' preference (see Tooltype_HELPFILE).
  799.  
  800.    It is recommended that help be turned off if you are short of memory.
  801.  
  802.    Once help is running, it can either be accessed by selecting the
  803. `Help' submenu in the `Project' menu or by performing a standard "help
  804. menu pick" on a menu item. To do this, highlight the menu item you item
  805. you wish to know more about, but instead of releasing the right mouse
  806. button to select the item, press `Help' on the keyboard. To clarify,
  807. perform the following steps:
  808.  
  809.   1. Press right mouse button.
  810.  
  811.   2. Highlight menu item you wish to find out help on.
  812.  
  813.   3. Press `Help' on the keyboard.
  814.  
  815.   4. Release right mouse button.
  816.  
  817. Create keyfile
  818. --------------
  819.  
  820.    This allows registered users with v1.x.x of ImageStudio to create a
  821. keyfile to `unlock' the freely distributable versions of ImageStudio.
  822.  
  823.    A file requester will open asking the user to select their
  824. registered version of ImageStudio v1.x.x. If ImageStudio recognises
  825. this as a registered copy, a keyfile with the name given by the
  826. `KEYFILE' preference (see Tooltype_KEYFILE) will created.
  827.  
  828.    If all is successful, when ImageStudio is next started it will be
  829. fully operational.
  830.  
  831.    A plea:
  832.  
  833.      Please do not give your keyfile to anyone else. Each keyfile is
  834.      individual to each user, so should your keyfile get into
  835.      distribution it can be traced back to you. Don't try altering your
  836.      keyfile, it won't work.
  837.  
  838.      Many thanks for your co-operation in this matter.
  839.  
  840. Iconify
  841. -------
  842.  
  843.    Keyboard shortcut - `Amiga - !'
  844.  
  845.    This reduces the program to a small icon on the Workbench screen. To
  846. reopen the program, simply double-click on the icon. In order to reduce
  847. the amount of memory used by the program when it is iconified, some of
  848. the working memory used by the program is purged; this could lead to a
  849. freeing of several hundred K of memory, depending on the virtual memory
  850. page size and data in internal caches.
  851.  
  852. Quit
  853. ----
  854.  
  855.    This quits the program. If any changes remain unsaved, the user is
  856. warned before the program quits.
  857.  
  858. Edit
  859. ====
  860.  
  861.    Select the submenu you wish to investigate.
  862.  
  863. Undo
  864. ----
  865.  
  866.    Keyboard shortcut - `Amiga - U'
  867.  
  868.    Undos last operation.
  869.  
  870.    The maximum number of undos is set in the preferences requester, See
  871. Prefs.
  872.  
  873. Redo
  874. ----
  875.  
  876.    Keyboard shortcut - `Amiga - R'
  877.  
  878.    Redos last undo.
  879.  
  880.    The maximum number of redos is set in the preferences requester, See
  881. Prefs.
  882.  
  883. Copy
  884. ----
  885.  
  886.    Keyboard shortcut - `Amiga - C'
  887.  
  888.    Copies the current image to the clipboard.
  889.  
  890.    Once the image has been copied to the clipboard it can be used by
  891. any other program that supports the Amiga clipboard.
  892.  
  893. Paste
  894. -----
  895.  
  896.    Keyboard shortcut - `Amiga - V'
  897.  
  898.    Reads in image from the clipboard.
  899.  
  900. Flush buffers
  901. -------------
  902.  
  903.    Flushing the buffers will free any memory and diskspace used by undo
  904. / redo buffers. The user is warned that once the buffers have been
  905. freed, the data cannot be recovered. The current buffer (i.e. the image
  906. in the preview window) is not affected.
  907.  
  908. Region co-ords
  909. --------------
  910.  
  911.    Keyboard shortcut - `Amiga - D'
  912.  
  913.    Allows the user to select a region by typing the co-ordinates.
  914.  
  915.    The region co-ords requester allow the user to specify the selected
  916. region by either typing in the co-ordinates of the minimum and maximum
  917. corners of the rectangle or the minimum co-ordinates and the
  918. rectangle's width and height. A radio button on the left of the
  919. requester shows whether the maximum co-ords or the width and height are
  920. to be used to select the region.
  921.  
  922.    If there is already a selected region, these values are copied into
  923. the requester when it is opened.
  924.  
  925. Region clear
  926. ------------
  927.  
  928.    Removes any selected region from the preview window.
  929.  
  930.    As well as this menu item, the region can be cleared by simply
  931. clicking in the preview window.
  932.  
  933. Select all
  934. ----------
  935.  
  936.    Keyboard shortcut - `Amiga - A'
  937.  
  938.    Makes the selected region the whole of the displayed image in the
  939. preview window.
  940.  
  941.    Note:
  942.  
  943.    If the user has zoomed in on a region of the image (see Zoom_in),
  944. `Select all' will not select the whole image but just the displayed
  945. image in the preview window.
  946.  
  947. View
  948. ====
  949.  
  950.    Select the submenu you wish to investigate.
  951.  
  952. Full image
  953. ----------
  954.  
  955.    Keyboard shortcut - `Amiga - F'
  956.  
  957.    Displays the whole image in the preview window.
  958.  
  959. Zoom in
  960. -------
  961.  
  962.    Keyboard shortcut - `Amiga - <'
  963.  
  964.    Zooms in to make the currently selected region fill the preview
  965. window.
  966.  
  967. Zoom out
  968. --------
  969.  
  970.    Keyboard shortcut - `Amiga - >'
  971.  
  972.    Zooms out by a factor of 3 times.
  973.  
  974. Internal viewer
  975. ---------------
  976.  
  977.    Keyboard shortcut - `Amiga - I'
  978.  
  979.    Views the current image with the internal viewer.
  980.  
  981.    The user may choose the viewer module to be used via the
  982. INTERNALVIEWER preference (see Tooltype_INTERNALVIEWER) to adapt the
  983. viewer's capablities based on the Amiga on which it is being used.
  984.  
  985.    In general, if the image is colour-mapped, the viewer will try and
  986. open a screen with the same number of colours as the image. Viewing
  987. 24-bit images is done by using the HAM screenmodes (HAM6 under ECS,
  988. HAM8 under AGA) to approximate the 24-bit image. In order to keep the
  989. viewer reasonably fast, the HAM image sometimes suffers from `colour
  990. fringing' as the approximation is relatively crude (especially under
  991. ECS).
  992.  
  993.    If the image originated as an IFF-ILBM, the viewer screen will try
  994. and open up in the same screen mode as the image. If this is not
  995. possible, the user may change to a more suitable screenmode with the
  996. `View screenmode' menu option, See View_screenmode.
  997.  
  998.    If the internal viewer won't display the current image, check the
  999. following:
  1000.  
  1001.   1. If the image was loaded in as an IFF-ILBM, the saved screenmode
  1002.      may not be supported by your machine. For example, the screenmode
  1003.      may be `Productivity' and your machine doesn't have a multiscan
  1004.      monitor. Simply change the screenmode to one your machine does
  1005.      support - e.g.  `Hires Laced'
  1006.  
  1007.   2. A colour-mapped image contains more colours than it is possible to
  1008.      show on a ECS machine. Either reduce the number of colours in the
  1009.      image to a number that can be displayed or use the
  1010.      `amigaplus.isio' internal viewer to display an approximation in a
  1011.      HAM screen.
  1012.  
  1013.   3. Make sure you have enough CHIP RAM free to open the screen. Large
  1014.      256 colour and 16 million colours images take lots of CHIP RAM.
  1015.  
  1016.    To stop the viewer at any time, press the right mouse button or
  1017. click on `Abort' in the infobar.
  1018.  
  1019.    The following internal viewer modules causes slight differences in
  1020. the behaviour in the way the image is handled in certain cases:
  1021.  
  1022. amiga.isio
  1023.      This module will work with both ECS and AGA Amigas. Colour-mapped
  1024.      images are displayed directly (upto 16 or 32 colours on ECS
  1025.      machines, 256 colours on AGA Amigas) and 24 bit images are shown
  1026.      on HAM6 screens. If the viewer cannot open the desired colour
  1027.      mapped screen, it fails.
  1028.  
  1029. amiga-aga.isio
  1030.      This module will only work with AGA Amigas. It functions exactly
  1031.      the same as the `amiga.isio' module, only it displays 24 bit
  1032.      images in HAM8.
  1033.  
  1034. amigaplus.isio
  1035.      This module is aimed at the ECS Amiga, essentially being the
  1036.      `amiga.isio' module but with the automatic capability of being
  1037.      able to display colour mapped images as HAM6 if the colour mapped
  1038.      image has too many image for the ECS chipset to display directly.
  1039.      This is useful for viewing the many 256 colour images on an ECS
  1040.      Amiga.
  1041.  
  1042. View screenmode
  1043. ---------------
  1044.  
  1045.    This allows the user to set the screenmode of the image, and
  1046. therefore of the internal viewer.
  1047.  
  1048.    Click on the desired screenmode for the image in the screenmode
  1049. requester. The current screenmode is highlighted in the listview.
  1050.  
  1051. External viewer
  1052. ---------------
  1053.  
  1054.    Uses an external viewer program to view the image.
  1055.  
  1056.    This calls up the external viewer program to view the current image.
  1057. If a third party 24-bit graphics card is installed, a viewer can be
  1058. used to view the image on that.
  1059.  
  1060.    To specify the external viewer to use, See Prefs.
  1061.  
  1062. Process
  1063. =======
  1064.  
  1065.    Select the submenu you wish to investigate.
  1066.  
  1067. Crop
  1068. ----
  1069.  
  1070.    Keyboard shortcut - `Amiga - W'
  1071.  
  1072.    Crops the current image to the selected region.
  1073.  
  1074.    This reduces the image to only that which is in the selected region.
  1075. A region must be selected in order for this operation to work.
  1076.  
  1077. Scale
  1078. -----
  1079.  
  1080.    Keyboard shortcut - `Amiga - L'
  1081.  
  1082.    Reduces / increases the size of the image.
  1083.  
  1084.    The scale requester allows the user to change the image's width /
  1085. height by either selecting the absolute size of the new image or the
  1086. percentage by which to scale. A radio gadget to the left shows which
  1087. operation will be performed.
  1088.  
  1089.    The percentage value may also be changed by sliding the width and
  1090. height sliders to achieve the desired final size; divide and multiply
  1091. by 2 buttons are provided to quickly scale the image by common amounts.
  1092.  
  1093.    Finally, two methods of scaling are supported: fast and colour
  1094. average. Fast scaling works with both colour-mapped and 24-bit images
  1095. and produces results adequate for most needs. If the image is to be
  1096. scaled up by a large amount the image may become very `blocky' and if
  1097. the image is scaled down a large amount, information in the image may
  1098. be lost. To reduce this, colour average scaling is available on 24-bit
  1099. images which reduces blockiness when increasing the scale and reduces
  1100. information loss when reducing the scale. Colour average rescale can
  1101. take significantly longer than a fast rescale.
  1102.  
  1103. Colours
  1104. -------
  1105.  
  1106.    Keyboard shortcut - `Amiga - K'
  1107.  
  1108.    Allows increasing / decreasing of the number of colours in the
  1109. image, with various dithers.
  1110.  
  1111.    The colours requester allows the user control over the number of
  1112. colours in the image. A radio button on the left hand side shows
  1113. whether the current image is colour-mapped or 24-bit.
  1114.  
  1115.    To increase the number of colours in a colour-mapped image, simply
  1116. select the new number of colours with the top cycle gadget or the `No.
  1117. colours' slider. Although the number of colours need not be a power of
  1118. 2 (2, 4, 8, 16, 32, 64, 128 or 256), internally the number will be
  1119. rounded up to the nearest power of 2. If, for example, a 16 colour
  1120. picture was increased to 20 colours then the image would become a 32
  1121. colour image.
  1122.  
  1123.    Colour-mapped images can also be turned into 24-bit images by
  1124. clicking on the `16 million colours' radio button on the left hand side
  1125. of the requester. This is useful if the user wishes to perform an
  1126. operation on a colour-mapped image that can only be performed on a
  1127. 24-bit image. The resultant 24-bit image can then be turned back into a
  1128. colour-mapped image after the operation is complete.
  1129.  
  1130.    To reduce the number of colours in an image, the same process is
  1131. followed as above with a few differences. Whereas increasing the number
  1132. of colours in an image does not lose any image information, it is
  1133. enevitable that reducing the number of colours must lose some of the
  1134. colour information. In order to help reduce the effect of this, two
  1135. other aids are used: dithering and palette choice.
  1136.  
  1137.    The result of colour reduction is always a colour-mapped image. The
  1138. user may select the number of colours in the final image with the top
  1139. cycle gadget or the `No. colours' slider. Again, although the number of
  1140. colours need not be a power of  2 (2, 4, 8, 16, 32, 64, 128 or 256),
  1141. internally the number will be rounded up to the nearest power of 2.
  1142. This though can be useful, as the user may want to reduce a 24-bit
  1143. image down to 30 colours - leaving 2 spare for his / her own use.
  1144.  
  1145.    In order to give the impression of more colours in the reduced
  1146. colour image, dithering can be employed to smoothly distribute colours
  1147. over areas of high colour change. `Floyd-Steinberg' is the most common
  1148. method and works well in most cases. For larger images, better contrast
  1149. can be obtained by using a more computationally intensive dither
  1150. (`Burkes', `Stucki', `Sierra', `Jarvis') and for the user with large
  1151. images and lots of time to spare, `Stevenson-Arce'. Again, there is no
  1152. hard and fast rule which method of dithering is best; if you're not
  1153. happy with the result, try a different method.
  1154.  
  1155. Palette
  1156. -------
  1157.  
  1158.    Allows the saving of the current palette and loading of new palette
  1159. onto the current image.
  1160.  
  1161.    Palettes can either be loaded, saved and edited in ImageStudio:
  1162.  
  1163. Palette load
  1164.      This is used to force a palette onto an image. The requester
  1165.      allows the user to choose the palette to load and any dithering to
  1166.      be applied to the image, See Colours. Various sample palettes are
  1167.      given with the distribution to map the image to the Workbench
  1168.      colours or a general purpose palette. New palettes can be
  1169.      generated with any popular paint package(1).
  1170.  
  1171. Palette save
  1172.      Saves the current palette out to the filename chosen by the user
  1173.      in the requester. The palette file is compatible with the popular
  1174.      paint packages. This option has no relevance for 24-bit images, as
  1175.      they have no palette.
  1176.  
  1177. Palette edit
  1178.      This brings up the palette edit requester. Here the user may edit
  1179.      each colour individually or move the colours around with the
  1180.      `Copy' and `Swap' operations. Colour ranges can be created and
  1181.      ranges may be sorted into order of increasing or decreasing
  1182.      luminosity.
  1183.  
  1184.      To edit a colour, simply click on the colour in the scrolling
  1185.      viewer and edit the R,G,B or H,S,V colour values (see Colour
  1186.      representations).
  1187.  
  1188.      To copy or swap two colours, click on the first one in the
  1189.      scrolling viewer then click on either `Copy' or `Swap'. The
  1190.      pointer will change to a "To" pointer to allow you to click on
  1191.      another colour to swap or copy to.
  1192.  
  1193.      To create a colour spread, alter one colour to be the start of the
  1194.      spread and alter another colour to be the end of the spread.
  1195.      Clicking on the first colour, then on `Spread', the on the end
  1196.      colour will cause a smooth transition of colours between the start
  1197.      and end colours.
  1198.  
  1199.      Sorting the colours is like a colour spread, only no colour values
  1200.      are actually changed. Simply click on the start of the sort,
  1201.      followed by either of the `Sort' buttons and finally on the end
  1202.      colour. The colours between these values will be sorted into
  1203.      either an increasing or decreasing order of luminosity.
  1204.  
  1205.      Finally, to apply the new colour palette to the image click on
  1206.      `OK'. To remap the image to the new palette (swap the old colours
  1207.      with their nearest match in the new palette), click on `Remap'.
  1208.  
  1209.      Whilst changing the colours in the scrolling viewer, the colours
  1210.      in the preview window will change. *This is not a representation
  1211.      of what is happening to the image!*.
  1212.  
  1213.    ---------- Footnotes ----------
  1214.  
  1215.    (1)  Except Brilliance, which seems to save all 384 colours of its
  1216. palette.
  1217.  
  1218. Tools
  1219. =====
  1220.  
  1221.    Select the submenu you wish to investigate.
  1222.  
  1223. Command shell
  1224. -------------
  1225.  
  1226.    Keyboard shortcut - `Amiga - 0'
  1227.  
  1228.    Opens the ARexx command shell.
  1229.  
  1230.    The command shell allows the user to enter ARexx commands directly,
  1231. without having to write a script file (see Show_scripts). This means
  1232. that the effect of the ARexx command may be seen directly, allowing the
  1233. commands to be experimented with before adding them to a script.
  1234.  
  1235.    The values returned by a command are displayed in a readable form in
  1236. the command shell.
  1237.  
  1238.    It should be noted that the command shell differs from executing an
  1239. actual ARexx script in the following ways:
  1240.  
  1241.   1. Each entered command is passed directly to ImageStudio without
  1242.      going through ARexx first. This means that no ARexx statements can
  1243.      be used (e.g. loops) and no variables may be defined.
  1244.  
  1245.   2. The string entered in the command shell is *exactly* what is seen
  1246.      by the ImageStudio command parser - nothing is evaluated. It is
  1247.      not neccessary therefore to enclose strings in both single and
  1248.      double quotes to stop them from being evaluated. For example, the
  1249.      following line is valid in the command shell, but invalid in an
  1250.      ARexx script as the string would have its quotes removed (see
  1251.      Common ARexx problems):
  1252.  
  1253.           REQUEST_MESSAGE TEXT "A string with spaces in it"
  1254.  
  1255.  
  1256.    Help on a particular command's template (see Command templates) can
  1257. be obtained by typing:
  1258.  
  1259.      help <command>
  1260.  
  1261.    in the command shell. The command's template for the input and
  1262. return values will be show.
  1263.  
  1264. Show balance
  1265. ------------
  1266.  
  1267.    Keyboard shortcut - `Amiga - 1'
  1268.  
  1269.    Opens / closes the balance floating palette.
  1270.  
  1271.    The balance floating palette is used to control the brightness,
  1272. contrast and gamma of the current image. On 24-bit images, the colour
  1273. balance can be altered on selected regions as well as the whole image
  1274. whereas colour-mapped images only allow alterations to the whole image.
  1275.  
  1276.    The colour balance effects are usually applied to all the red /
  1277. green / blue components simultaneously, but each component can be
  1278. altered individually by checking the `Red', `Green' or `Blue'
  1279. checkboxes at the bottom of the floating palette.
  1280.  
  1281.    The effect of changing either the brightness, contrast or gamma can
  1282. be seen in the graph on the right hand side of the floating palette.
  1283. The graph shows the input RGB component along the X-axis and the output
  1284. RGB component along the Y-axis.
  1285.  
  1286.               output
  1287.       Light RGB ^
  1288.                 |
  1289.                 |
  1290.                 |
  1291.                 |
  1292.                 |
  1293.        Dark RGB |
  1294.                 +-------> input
  1295.             Dark RGB  Light RGB
  1296.  
  1297.    No operation is shown therefore with a straight diagonal line - the
  1298. input value is mapped to the same output value.
  1299.  
  1300.               output
  1301.                 ^
  1302.                 |     /
  1303.                x|____/
  1304.                 |   /|
  1305.                 |  / |
  1306.                 | /  |
  1307.                 |/   |
  1308.                 +-------> input
  1309.                      x
  1310.  
  1311. Brightness
  1312.      Altering the brightness is achieved by mutliplying up / down the
  1313.      RGB components by the specified amount. The range of the slider is
  1314.      from -100% (everything becomes black) to +100% (everything is
  1315.      twice as bright).
  1316.  
  1317. Contrast
  1318.      Altering the contrast forces dark colours darker and light colours
  1319.      lighter. The range of the slider is from -100% (everything becomes
  1320.      mid grey) to +100% (RGB components are either on/off).
  1321.  
  1322.      Note: 100% contrast on a colour image doesn't produce a black and
  1323.      white image as may be expected. As each RGB component is treated
  1324.      individually, it leaves you with an 8 colour image - the 8 colours
  1325.      being composed of combinations of the RGB components as below:
  1326.  
  1327.     Black
  1328.           0% Red, 0% Green, 0% Blue
  1329.  
  1330.     Red
  1331.           100% Red, 0% Green, 0% Blue
  1332.  
  1333.     Green
  1334.           0% Red, 100% Green, 0% Blue
  1335.  
  1336.     Blue
  1337.           0% Red, 0% Green, 100% Blue
  1338.  
  1339.     Yellow
  1340.           100% Red, 100% Green, 0% Blue
  1341.  
  1342.     Magenta
  1343.           100% Red, 0% Green, 100% Blue
  1344.  
  1345.     Cyan
  1346.           0% Red, 100% Green, 100% Blue
  1347.  
  1348.     White
  1349.           100% Red, 100% Green, 100% Blue
  1350.  
  1351.      If you wish to turn a colour image into 2 colour black and white,
  1352.      greyscale the image first with the greyscale effect, See Effects.
  1353.  
  1354. Gamma
  1355.      Adjusting the gamma of an image has the effect of lightening some
  1356.      of the mid-dark colours, whilst leaving the dark colours dark.
  1357.      This can often enhance the eye's perception of the image, as the
  1358.      eye is more responsive to light colours. Gamma correction can also
  1359.      be useful when printing an image out, as mid-dark colours tend to
  1360.      get printed too dark.
  1361.  
  1362.      Only small alterations are usually needed with this operator (-20%
  1363.      to +20%).
  1364.  
  1365. Show effects
  1366. ------------
  1367.  
  1368.    Keyboard shortcut - `Amiga - 2'
  1369.  
  1370.    Opens / closes the effects floating palette.
  1371.  
  1372.    The effects floating palette contains a list of ImageStudio's built
  1373. in effects. Not all types of effect can be applied to all types of
  1374. buffer, the details are given below. Any numerical values required by
  1375. the individual effects are set using the slider on the effect floating
  1376. palette.
  1377.  
  1378.    An effect can be applied by clicking on the `Apply' button or
  1379. double-clicking on the list entry.
  1380.  
  1381.    See Effects, for details of all available effects.
  1382.  
  1383. Show convolves
  1384. --------------
  1385.  
  1386.    Keyboard shortcut - `Amiga - 3'
  1387.  
  1388.    Opens / closes the convolves floating palette.
  1389.  
  1390.    The convolves floating palette allows the user to apply their own
  1391. convolution effects to a 24-bit image; convolution will not work on
  1392. colour-mapped images.
  1393.  
  1394.    To create a new convolution filter, select `New' and then `Edit'
  1395. from the floating palette. The convolve grid requester contains the
  1396. convolution filter's name at the top as well as gadgets for the filter,
  1397. divisor and bias values. When the user has set the filter values, click
  1398. on `OK' to return to the convolve floating palette.
  1399.  
  1400.    To apply a filter, select it in the listview and click on `Apply'.
  1401. To delete a filter from the list, click on `Del'. This will not delete
  1402. the file from the disk, this has to be done from the Workbench.
  1403.  
  1404.    To scan a new drawer for convolution filters, click on `Load' and
  1405. select a directory to scan. To save the current list's convolution
  1406. filters, click on `Save' and select a drawer to save to.
  1407.  
  1408.    The default drawer to scan at startup is set in the preferences, See
  1409. Prefs.
  1410.  
  1411.    A convolve can be applied by clicking on the `Apply' button or
  1412. double-clicking on the list entry.
  1413.  
  1414.    What follows is a quick description of convolution, it is not
  1415. necessary to understand this to use the filters.
  1416.  
  1417.    It is convenient think of the convolution filter as an array of
  1418. numbers that "slides" over the image a pixel at a time. To find the new
  1419. colour value of the pixel at the centre of the filter, multiply the
  1420. filter values by the values of the colours under the array then divide
  1421. the result by the `Div' value, then add the `Bias' value.
  1422.  
  1423.    If we take the example of 3 x 3 `blur low' filter being applied to
  1424. the pixels below:
  1425.  
  1426.      filter                  pixels
  1427.      
  1428.      0 1 0                   a b c
  1429.      1 2 1  convolved with   d e f   gives:
  1430.      0 1 0                   g h i
  1431.  
  1432.    ((0 x a) + (1 x b) + (0 x c) + (1 x d) + (2 x e) + (1 x f) + (0 x g)
  1433. + (1 x h) + (0 x i)) / Div + Bias
  1434.  
  1435.    which would be applied to the new pixel in the position of the `e'
  1436. pixel.
  1437.  
  1438.    Although the pixels shown above are shown as `a', `b' etc... they
  1439. are actually the 3 red, green and blue values that comprise the colour.
  1440.  
  1441.    Examples:
  1442.  
  1443.   1.      0 0 0
  1444.           0 1 0
  1445.           0 0 0
  1446.           Div = 3, Bias = 0
  1447.      would make each pixel one third of its original brightness.
  1448.  
  1449.   2.      0 0 0
  1450.           0 0 0
  1451.           0 1 0
  1452.           Div = 1, Bias = 0
  1453.      would move each pixel up by one.
  1454.  
  1455.   3.      0 0 0
  1456.           0 1 0
  1457.           0 0 0
  1458.           Div = 1, Bias = 50
  1459.      would add 50 onto each of the red, green, blue components of the
  1460.      centre pixel.
  1461.  
  1462.    Note:
  1463.  
  1464.    * The red, green, blue components of a pixel can have values in the
  1465.      range 0 to 255. If a convolution value is greater than 255 it is
  1466.      made equal to 255. Similarly if a convolution value is less than 0
  1467.      it is made equal to 0.
  1468.  
  1469.    * ImageStudio has optimized routines for 1x1, 3x3 and 5x5 filters.
  1470.      If the program detects that only values in a 3x3 filter are being
  1471.      used, only calculations for a 3x3 filter are performed.
  1472.  
  1473. Show scripts
  1474. ------------
  1475.  
  1476.    Keyboard shortcut - `Amiga - 4'
  1477.  
  1478.    Opens / closes the scripts floating palette.
  1479.  
  1480.    The scripts floating palette gives a list of easily available ARexx
  1481. scripts for the user to apply.
  1482.  
  1483.    To execute a script in the list, select the desired script and click
  1484. on `Apply' or simply double-click on the list entry. The script can be
  1485. stopped by either clicking on `Abort' during any operation or choosing
  1486. `Cancel' on any given requester (if the script is written correctly,
  1487. that is). See Writing scripts, for more information on creating ARexx
  1488. scripts.
  1489.  
  1490.    New scripts can be created by clicking on `New...' button. The user
  1491. is requested to name the new script and it is placed in the listview.
  1492. By default, the script will already contain some ARexx commands to help
  1493. the user - the user simply adds what is neccessary.
  1494.  
  1495.    To edit the currently selected script, the `Edit...' button is used.
  1496. The text editor set in the preferences (see Prefs) is used to edit the
  1497. file.
  1498.  
  1499.    The `Load...' button allows the user to scan another directory for
  1500. ARexx script files. `Other...' will let the user select another ARexx
  1501. script file to run, without adding it to the list.
  1502.  
  1503. Show coords
  1504. -----------
  1505.  
  1506.    Keyboard shortcut - `Amiga - 5'
  1507.  
  1508.    Opens / closes co-ords floating palette.
  1509.  
  1510.    The co-ords floating palette shows the current position in the image
  1511. of the mouse pointer. When dragging box to select a region, the current
  1512. region width and height are shown.
  1513.  
  1514. ARexx
  1515. *****
  1516.  
  1517.    This chapter gives information about the program's interface to the
  1518. ARexx programming language.
  1519.  
  1520. Introduction to ARexx
  1521. =====================
  1522.  
  1523.    ARexx is the script language that is distributed with all Amigas
  1524. sporting Workbench 2.04 and above. It is used on the Amiga for two main
  1525. tasks:
  1526.  
  1527.   1. Providing an easy and consistent method of adding macro facilities
  1528.      to programs.
  1529.  
  1530.   2. To allow ARexx aware programs to communicate with each other.
  1531.  
  1532.    Most users are dissuaded from using ARexx with their programs
  1533. because of the learning curve involved in (i) learning ARexx and (ii)
  1534. using the functions provided with each program. With ImageStudio, we
  1535. have tried to simplify the process of creating an ARexx script by:
  1536.  
  1537.   1. Providing an easy interface for creating and running the scripts.
  1538.  
  1539.   2. Providing a ready-made script template which the user can just
  1540.      "fill in the blanks" to produce a fully working program.
  1541.  
  1542.   3. Providing many commands to perform commonly performed operations.
  1543.      This means the user needs to write less code in ARexx and doesn't
  1544.      need to rely on external utilities and libraries to perform the
  1545.      operations.
  1546.  
  1547.    Typical uses for ARexx in ImageStudio include:
  1548.  
  1549.    * Batch processing. ImageStudio can now be told to repeatedly
  1550.      perform the same operation on many images. The user could, for
  1551.      example, convert all PCX files in a given directory into IFF-ILBM
  1552.      files.
  1553.  
  1554.    * Background processing. ImageStudio can be told to watch a given
  1555.      directory and whenever a new file is generated to perform a set of
  1556.      operations on it. This is useful for producing ray-traced
  1557.      animations, where each frame of the animation could be converted
  1558.      from 24bits to HAM6 (say) as each frame was generated by the ray
  1559.      tracer.
  1560.  
  1561.    * Adding additional image manipulation abilities to other programs.
  1562.      ImageStudio could be passed an image from another program, process
  1563.      it, then return it back to the original program. By using a
  1564.      desktop publishing package that supports ARexx, an image could be
  1565.      saved from the DTP program, gamma corrected by ImageStudio, then
  1566.      reloaded back into the DTP program all automatically.
  1567.  
  1568.    Many example files are given with ImageStudio (see Example scripts),
  1569. which can either be used directly or modified to perform the desired
  1570. operation.
  1571.  
  1572.    In order for ARexx to be available to ImageStudio, you must start
  1573. ARexx at startup time by including the line:
  1574.  
  1575.      rexxmast >NIL:
  1576.  
  1577.    in your `User-Startup' file in the `S:' directory. Normally this
  1578. line should be present in your User-Startup, but if you find no scripts
  1579. run from ImageStudio you must add this line manually.
  1580.  
  1581. Writing scripts
  1582. ===============
  1583.  
  1584.    We have tried to simplify the process of writing an ARexx script as
  1585. much a possible to provide access to the power of ARexx scripts without
  1586. (too much(!)) pain.
  1587.  
  1588.    An ARexx script can be written and run without ever having to leave
  1589. ImageStudio. The only extra tool needed is a text editor; ImageStudio
  1590. can be configured to use your favourite text editor by changing the
  1591. program's preferences (see Prefs). The basic process of creating an
  1592. ARexx script is as follows:
  1593.  
  1594.   1. Open the `Scripts' floating palette.
  1595.  
  1596.   2. Create and name the new script by clicking on `New...'.
  1597.  
  1598.   3. Load the blank script template into your editor by clicking on
  1599.      `Edit...'.
  1600.  
  1601.   4. Add the desired commands to the template in the space provided.
  1602.  
  1603.   5. Save the file and exit the text editor.
  1604.  
  1605.   6. Run the script by clicking on the `Apply' button on the scripts
  1606.      floating palette.
  1607.  
  1608.    Any errors the script may generate will be displayed in a requester
  1609. on the ImageStudio screen.
  1610.  
  1611.    To try this process out, try the following:
  1612.  
  1613.   1. Open the `Scripts' floating palette.
  1614.  
  1615.   2. Click on `New...' and call the script "FirstScript".
  1616.  
  1617.   3. Edit the new script by clicking on `Edit...'.
  1618.  
  1619.   4. In the space provided in the script, type the following lines:
  1620.  
  1621.           OPEN "Pics/FW14B_250x250.gif"
  1622.           SCALE 80 40
  1623.           PALETTE_LOAD "Palettes/Workbench4.palette" DITHER FS
  1624.           VIEW
  1625.  
  1626.   5. Save the file and exit the text editor.
  1627.  
  1628.   6. Run the script by clicking on the `Apply' button on the scripts
  1629.      floating palette.
  1630.  
  1631.    The result of the above script should be a 4 colour icon sized image
  1632. of a Formula1 racing car. This could now be copied into the clipboard
  1633. by selecting `Copy' in the `Edit' menu and pasted into Commodore's
  1634. IconEdit program for final conversion into an icon. Alternatively, the
  1635. command to copy the image into the clipboard could be added to the end
  1636. of the script.
  1637.  
  1638.    See ARexx commands, for a full description of the ARexx commands
  1639. used in the above example.
  1640.  
  1641.    Note, please don't remove the "/* BEGIN PROGRAM ****" and
  1642. corresponding "END PROGRAM" lines in the blank macro template - these
  1643. will be used to insert the recorded ARexx macros when they are
  1644. implemented (see Future additions).
  1645.  
  1646. Basic ARexx
  1647. ===========
  1648.  
  1649.    This section is meant as a beginners guide to using ARexx with
  1650. ImageStudio. We cannot hope to teach you the ARexx language, although
  1651. it is only neccessary to the know the very basics to start using ARexx
  1652. scripts with ImageStudio. It is assumed that the user is editing and
  1653. running their scripts from within ImageStudio (see Show_scripts).
  1654.  
  1655.    For further information on ARexx, we suggest reading Commodore's
  1656. ARexx user guide supplied with the A4000 or the Workbench2 and 3
  1657. upgrade packs. For A600 and A1200 users who don't get this manual, we
  1658. recommend the "ARexxGuide" AmigaGuide document by Robin Evans which is
  1659. a shareware document containing extensive information on the ARexx
  1660. language. The guide can be obtained from all good PD houses.
  1661.  
  1662.    The ARexx programming language is similar to many other programming
  1663. languages in its structure. Users who have BASIC, C, FORTRAN, Pascal,
  1664. Modula2 or Oberon experience will notice many similarites. It is not
  1665. similar to Assember language, Lisp or Prolog. An ARexx program is, in
  1666. its simplest form, a list of instructions for ImageStudio to perform.
  1667. Here is a simple ARexx program:
  1668.  
  1669.      /* A simple ARexx program */
  1670.      
  1671.      REQUEST_MESSAGE TEXT '"Hello world!"'
  1672.      
  1673.      exit
  1674.  
  1675.    This shows some important things about an ARexx program:
  1676.  
  1677.   1. All ARexx programs *must* start with a comment line. A comment
  1678.      line is a line which starts with the `/*' sequence of characters
  1679.      and ends with the `*/' characters. Anything between these
  1680.      characters is ignored by ARexx.
  1681.  
  1682.   2. For clarity, all of ImageStudio's commands are shown CAPITALISED,
  1683.      ARexx commands are kept in lower case. REQUEST_MESSAGE is
  1684.      therefore an ImageStudio command that should be performed.
  1685.  
  1686.   3. The REQUEST_MESSAGE has some `arguments' or `parameters' following
  1687.      it. These tell the REQUEST_MESSAGE command how to behave, in this
  1688.      case they tell the command to pop up greeting message.
  1689.  
  1690.   4. To stop an ARexx program, use the command `exit'.
  1691.  
  1692.    OK, lets enhance our program a little:
  1693.  
  1694.      /* A better simple ARexx program */
  1695.      
  1696.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1697.         'the show so far?"',
  1698.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1699.      
  1700.      exit
  1701.  
  1702.    From this example we learn:
  1703.  
  1704.   1. To separate a long command line, place a comma `,' as the last
  1705.      character on the line. This tells ARexx to treat the next line as
  1706.      a continuation of the previous. Two line breaks are used in the
  1707.      above example.
  1708.  
  1709.   2. ARexx loves to evaluate things. If we want to stop ARexx
  1710.      evaluating variables, the variable should be enclosed in single
  1711.      quotes ` ' '.
  1712.  
  1713.    See ARexx problem 1, if little explanation is needed as to the many
  1714. double and single quotes used above. If we now tell you that the `\n'
  1715. characters are used represent a newline and the `||' characters glue
  1716. string together, we should see that:
  1717.  
  1718.      '"What do you think of\n'||'the show so far?"'
  1719.  
  1720.    would be evaluated to:
  1721.  
  1722.      "What do you think of*the show so far?"
  1723.  
  1724.    where `*' represents a newline. The lesson to be learnt here is that
  1725. whenever you use a string (with or without spaces) it is best to
  1726. enclose the whole thing in single quotes outside the double quotes to
  1727. keep the whole thing together.
  1728.  
  1729.    On with the examples. The previous script isn't much use if we can't
  1730. test for which button the user pressed, so:
  1731.  
  1732.      /* A better simple ARexx program */
  1733.      
  1734.      options results
  1735.      
  1736.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1737.         'the show so far?"',
  1738.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1739.      
  1740.      if RESULT == 0 then
  1741.         REQUEST_MESSAGE TEXT '"Sorry, I was trying very hard."'
  1742.      else if RESULT == 2 then
  1743.         REQUEST_MESSAGE TEXT '"It gets better."'
  1744.      else do
  1745.         REQUEST_MESSAGE TEXT '"We like happy users."'
  1746.         REQUEST_MESSAGE TEXT '"Treat yourself to a coffee."'
  1747.         end
  1748.      
  1749.      exit
  1750.  
  1751.    This shows:
  1752.  
  1753.   1. Normally ARexx ignores the values returned by commands. To allow
  1754.      commands to return values, use "options results"; this is done for
  1755.      you in the blank ARexx script.
  1756.  
  1757.   2. Unless otherwise specified (see Return values) commands return the
  1758.      results of their operation in a variable called "RESULT". The
  1759.      command REQUEST_MESSAGE returns the value of the button that the
  1760.      user pressed.  It is this value that we can test for.
  1761.  
  1762.   3. The `if' tests are shown above. Note that if you only want to
  1763.      perform one operation as part of the `if', you can just place it
  1764.      after the `then'. If you wish to perform more operations, they
  1765.      must be placed in  a `do / end' set.
  1766.  
  1767.    OK, that's about it for the introduction to ARexx. We really suggest
  1768. now that you look at the example scripts provided with ImageStudio (see
  1769. Example scripts) to learn more examples. Have fun!
  1770.  
  1771.    Note, if you use any ARexx command which prints text out (e.g.
  1772. "say"), this text is printed to the file given by the tooltype
  1773. REXXOUTPUT (see Tooltype_REXXOUTPUT). After the script has been
  1774. executed, this file can be examined.
  1775.  
  1776. Command templates
  1777. =================
  1778.  
  1779.    The parameters passed to the ARexx commands closely follow
  1780. Commodore's style guidelines. The parsing of the arguments follows the
  1781. standard template format described below.
  1782.  
  1783.    Commands are always of the form:
  1784.  
  1785.      command [options]
  1786.  
  1787.    The command may be something like `OPEN' or `SCALE' and the options
  1788. may be filenames, numbers etc... A typical command template may look
  1789. like:
  1790.  
  1791.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1792.  
  1793.    The commands and options are not case sensitive, therefore `OPEN',
  1794. `Open' or `open' can be used to open a file. The options after the
  1795. command name are separated by commas, and are named (e.g. FILE or FORCE
  1796. are option names). After the name, follows an optional modifier (e.g.
  1797. /A or /S are modifiers) which describes what type of information the
  1798. option specifies.
  1799.  
  1800.        When using the command, the option names may be ommitted if the
  1801. parameters for the command are given in the same order as the options
  1802. in the template, but for clarity it is recommended that the option
  1803. names be used.
  1804.  
  1805.    The following modifiers are used:
  1806.  
  1807. No modifier
  1808.      If the option has no modifier, the option is expecting a string.
  1809.      Strings are lines of text with no spaces; to use a string with a
  1810.      space, place the string in double-quotes (").
  1811.  
  1812. Multiple strings (/M)
  1813.      Many strings can be specified if an option uses this modifier.
  1814.  
  1815. Numeric (/N)
  1816.      Numeric options allow both positive and negative integers.
  1817.      Floating point numbers are not yet used by ImageStudio.
  1818.  
  1819. Boolean (/S)
  1820.      Some options can be specified to "switch" that option on. By
  1821.      leaving the option out, the option is switched off.
  1822.  
  1823. Keyword (/K)
  1824.      A keyword option shows that the option name must be used to set
  1825.      this option.
  1826.  
  1827. Always (/A)
  1828.      This option must always be included in this command.
  1829.  
  1830.    In practice, it soon becomes very easy to interpret command
  1831. templates - some examples with explanations are given below:
  1832.  
  1833.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1834.  
  1835.    The command `OPEN' is used to open a file and load it into
  1836. ImageStudio. OPEN requires a filename (FILE/A is a string, and is
  1837. always required), an optional FORMAT string, an optional ARGS string
  1838. and and optional FORCE switch. The following are valid OPEN commands:
  1839.  
  1840.    The following would load a file called
  1841. `Pics/CheetahFace250x200.ilbm', forcing the old project to be
  1842. overwritten:
  1843.  
  1844.      OPEN FILE "Pics/CheetahFace250x200.ilbm" FORCE
  1845.  
  1846.    The following would load a file called `Ram Disk:Tulip.jpg', asking
  1847. first if the current project has changed:
  1848.  
  1849.      OPEN '"Ram Disk:Tulip.jpg"'
  1850.  
  1851.    The following is an error, if the filename has spaces in it, it
  1852. should be enclosed in single and double-quotes:
  1853.  
  1854.      OPEN "Ram Disk:Tulip.jpg"
  1855.  
  1856.      SCALE X/N,Y/N,PERCENT/S,METHOD
  1857.  
  1858.    `SCALE' is used to change the size of the image (see ARexx_SCALE).
  1859. SCALE expects two numerical values (X/N,Y/N are numbers but neither are
  1860. required), can be used to scale either to an absolute size or by a
  1861. given percentage (adding the PERCENT switch specifies percentage
  1862. scaling) and can use a variety of methods (METHOD is used to specify a
  1863. description string of the method to be used - again, if this is not
  1864. specified a default method is used). The following are valid SCALE
  1865. commands:
  1866.  
  1867.    The following scales the image to 640x480 pixels:
  1868.  
  1869.      SCALE X 640 Y 480
  1870.  
  1871.    The following makes the image 50 percent of its original height:
  1872.  
  1873.      SCALE Y 50 PERCENT
  1874.  
  1875.    The following scales the image to 800x600 pixels using the colour
  1876. averaging method:
  1877.  
  1878.      SCALE 800 600 METHOD AVERAGE
  1879.  
  1880.    The following is an error, no X or Y values given:
  1881.  
  1882.      SCALE X PERCENT
  1883.  
  1884.    The following is an error, floating point values are not allowed:
  1885.  
  1886.      SCALE Y 127.5
  1887.  
  1888.    See ARexx commands, for more detailed descriptions of each of the
  1889. individual ARexx commands.
  1890.  
  1891. Return values
  1892. =============
  1893.  
  1894.    The return values for the ARexx commands are specified in the same
  1895. notation as the input parameters, although the types of returned values
  1896. is more limited than the input parameter types. In order for results to
  1897. be returned from ARexx commands, it is essential that the line:
  1898.  
  1899.      options results
  1900.  
  1901.    be placed near the start of the ARexx script.
  1902.  
  1903.    Commands may return either strings, numbers or arrays of either. By
  1904. default, all ARexx commands return their values in a variable called
  1905. "RESULT". This is fine if the command returns a single number or
  1906. string. For example, the following call to the FILE_JOIN command (see
  1907. ARexx_FILE_JOIN) would return the string "T:Image.ilbm" in the RESULT
  1908. variable:
  1909.  
  1910.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm"
  1911.  
  1912.    If the user wishes to return the result in another variable other
  1913. than RESULT, they may specify the VAR keyword. For example, the
  1914. following would perform the same action as above, only putting the
  1915. result in the varible called "FULLNAME"
  1916.  
  1917.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm" VAR FULLNAME
  1918.  
  1919.    Some ARexx commands return multiple values, and these to can be
  1920. returned in a single variable - each returned value in the variable is
  1921. seperated with a space. The following returns information about the
  1922. current image (see ARexx_IMAGEINFO_GET):
  1923.  
  1924.      IMAGEINFO_GET
  1925.  
  1926.    and the RESULT variable might look something like:
  1927.  
  1928.      640 400 8 Pics/Zebra.ilbm 32772
  1929.  
  1930.    It is possible then to extract the desired information using ARexx's
  1931. built in parsing routines. A neater way to return multiple values
  1932. though is through a "stem" variable. Here, a base name for a variable
  1933. is given and the returned values' names get added to it. It is clearer
  1934. with an example:
  1935.  
  1936.      IMAGEINFO_GET STEM IMAGEINFO.
  1937.  
  1938.    would return the same information as previously, only it would
  1939. create the following variables:
  1940.  
  1941.      IMAGEINFO.WIDTH = 640
  1942.      IMAGEINFO.HEIGHT = 400
  1943.      IMAGEINFO.DEPTH = 8
  1944.      IMAGEINFO.FILE = Pics/Zebra.ilbm
  1945.      IMAGEINFO.MODEID = 32772
  1946.  
  1947.    Now you can refer easily to the returned values.
  1948.  
  1949.    If an ARexx function returns an array of results, they are named as
  1950. follows:
  1951.  
  1952.      STEMNAME.RESULTNAME.NUMBER
  1953.  
  1954.    with the variable STEMNAME.RESULTNAME.COUNT holding the number of
  1955. returned results. Again, an example being the following which gets all
  1956. the ".ilbm" images in the "Pics" dirctory:
  1957.  
  1958.      FILES_MATCH PATHPART "Pics" PATTERN "#?.ilbm" STEM MATCHED.
  1959.  
  1960.    which might return the following:
  1961.  
  1962.      MATCHED.FILEPARTS.COUNT = 4
  1963.      MATCHED.FILEPARTS.0 = Zebra.ilbm
  1964.      MATCHED.FILEPARTS.1 = WilliamsFW14B.ilbm
  1965.      MATCHED.FILEPARTS.2 = Spitfire.ilbm
  1966.      MATCHED.FILEPARTS.3 = Brightside.ilbm
  1967.  
  1968.    See ARexx tips, for more information on how to turn array stem
  1969. variables into string variables.
  1970.  
  1971. Error checking
  1972. ==============
  1973.  
  1974.    ImageStudio uses the standard ARexx method of returning errors, with
  1975. a further extension.
  1976.  
  1977.    Whenever a command is executed, a variable called "RC" has its value
  1978. set by ARexx. If the command executed normally, RC is set to zero. If
  1979. any failure happened, RC is set to either 5 (warning), 10 (failure) or
  1980. 20 (serious failure).
  1981.  
  1982.    ImageStudio also sets the value of a further variable called "RC2",
  1983. which either contains a text description of the reason for failure or a
  1984. standard AmigaDos error code.
  1985.  
  1986.    A description string is returned in RC2 if a failure occurs within
  1987. the execution of a command. RC2 will be an AmigaDos error number if
  1988. there is an error with the command syntax (e.g. mis-spelled command
  1989. name or missing quotes).
  1990.  
  1991.    If, for example the user was to try to use the scale command when
  1992. there was no image in the buffer, RC and RC2 would be set to the
  1993. following:
  1994.  
  1995.      RC = 10
  1996.      RC2 = "SCALE, No image"
  1997.  
  1998.    If the scale operation were to be performed with the command:
  1999.  
  2000.      SCLAE 80 40
  2001.  
  2002.    the following values would be set:
  2003.  
  2004.      RC = 10
  2005.      RC2 = 236
  2006.  
  2007.    where AmigaDos error 236 represents `not implemented', i.e. unknown
  2008. command. The default blank script template will convert the most common
  2009. likely AmigaDos error codes into description strings (see Commodore's
  2010. AmigaDos manual for a full description of AmigaDos errors).
  2011.  
  2012.    By default, the blank script template turns on automatic error
  2013. checking. The line:
  2014.  
  2015.      signal on error
  2016.  
  2017.    tells ImageStudio to jump to the ERROR: label whenever a command
  2018. fails. The blank script then puts up a requester showing the error.
  2019.  
  2020.    The user may wish to turn off the automatic error checking to
  2021. perform error checking themselves. This is neccessary, for example, if
  2022. the user wishes to trap the user pressing `Cancel' on a requester (this
  2023. returns an error). The following checks when the user cancels the file
  2024. requester:
  2025.  
  2026.      /* Turn off automatic error checking */
  2027.      
  2028.      signal off error
  2029.      
  2030.      /* Open the requester */
  2031.      
  2032.      REQUEST_FILE
  2033.      
  2034.      /* Check for the error condition */
  2035.      
  2036.      if RC ~= 0 then do
  2037.         REQUEST_MESSAGE TEXT '"An error occurred (user\n'||,
  2038.            'probably pressed Cancel)"'
  2039.         end
  2040.      else do
  2041.         REQUEST_MESSAGE TEXT '"You chose: '||RESULT||'"'
  2042.         end
  2043.  
  2044. Common ARexx problems
  2045. =====================
  2046.  
  2047. ARexx problem 1
  2048. ---------------
  2049.  
  2050.      "I can't use strings with spaces in them."
  2051.  
  2052.    Care must be taken when specifying string paramters when the string
  2053. contains space characters. Single quotes must be used around double
  2054. quotes to stop the string from being seen as many different strings.
  2055.  
  2056.    Consider the following example:
  2057.  
  2058.      REQUEST_MESSAGE TEXT "Hello"
  2059.  
  2060.    ARexx would evaluate the string "Hello" and give ImageStudio the
  2061. following command to execute:
  2062.  
  2063.      REQUEST_MESSAGE TEXT Hello
  2064.  
  2065.    i.e. without the double quotes. In this example, REQUEST_MESSAGE
  2066. would do as expected. The problems start when strings have spaces in
  2067. them; consider the following:
  2068.  
  2069.      REQUEST_MESSAGE TEXT "Hello world"
  2070.  
  2071.    ARexx would evaluate the string "Hello world" and give ImageStudio
  2072. the following command to execute:
  2073.  
  2074.      REQUEST_MESSAGE TEXT Hello world
  2075.  
  2076.    which is not what is desired. The Hello becomes the TEXT value and
  2077. the world becomes the value of the next parameter (BUTTONTEXT in this
  2078. case). The result would be a requester with the text of "Hello" and a
  2079. button called "world". Now we must use the single quotes to stop ARexx
  2080. from evaluating the string:
  2081.  
  2082.      REQUEST_MESSAGE TEXT '"Hello world"'
  2083.  
  2084.    would send ImageStudio the following command:
  2085.  
  2086.      REQUEST_MESSAGE TEXT "Hello world"
  2087.  
  2088.    which shows that the whole string "Hello world" belongs to the TEXT
  2089. parameter.
  2090.  
  2091. ARexx problem 2
  2092. ---------------
  2093.  
  2094.      "I can't use AmigaDos commands in a script."
  2095.  
  2096.    There is a bug which causes ImageStudio to sometimes crash the
  2097. machine if the output from AmigaDos command is not properly
  2098. re-directed. The stdin and stdout for all external CLI commands should
  2099. be redirected to the NIL: device.
  2100.  
  2101.    For example:
  2102.  
  2103.      address command 'rename ram:foo ram:bar'
  2104.  
  2105.    could crash the machine if the rename fails (e.g. the file "ram:foo"
  2106. doesn't exist). To avoid this, use:
  2107.  
  2108.      address command 'rename <NIL: >NIL: ram:foo ram:bar'
  2109.  
  2110.    The failure will still be trapped by ARexx and sets RC to 10.
  2111.  
  2112. ARexx problem 3
  2113. ---------------
  2114.  
  2115.      "I can't run scripts from the ram disk."
  2116.  
  2117.    This is due to ARexx scripts being treated by ARexx as external
  2118. commands. Command names may not contain spaces, and scripts in the ram
  2119. disk will be called something like `Ram Disk:MyScript.isrx', which is
  2120. not allowed.
  2121.  
  2122.    To work around this, either move the script to a location without a
  2123. space in its filename or specify the ram disk as `ram:' rather than
  2124. `Ram Disk:'.
  2125.  
  2126. ARexx problem 4
  2127. ---------------
  2128.  
  2129.      "I can't set the same variable twice with VAR"
  2130.  
  2131.    If you are able to return a value from a command into a given
  2132. variable name once in a program, but unable to do it again it's
  2133. probably due to ARexx evaluating your variable the second time it is
  2134. used.
  2135.  
  2136.    For example, the following won't work:
  2137.  
  2138.      FILE_JOIN FILEPART '"Work:"' '"MyFile"' VAR fullname
  2139.      
  2140.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR fullname
  2141.  
  2142.    because ARexx will evaluate `fullname' in the second FILE_JOIN, i.e.
  2143. ARexx will see the second FILE_JOIN as:
  2144.  
  2145.      FILE_JOIN FILEPART "Work:" "MyFile" VAR Work:MyFile
  2146.  
  2147.    The solution is to enclose the variable name in single quotes to
  2148. stop it from being evaluated, i.e. our second FILE_JOIN is written as:
  2149.  
  2150.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR 'fullname'
  2151.  
  2152. ARexx problem 5
  2153. ---------------
  2154.  
  2155.      "I can't get any ARexx script to run."
  2156.  
  2157.    In order for ARexx to be available to ImageStudio, you must start
  2158. ARexx at startup time by including the line:
  2159.  
  2160.      rexxmast >NIL:
  2161.  
  2162.    in your `User-Startup' file in the `S:' directory. Normally this
  2163. line should be present in your User-Startup, but if you find no scripts
  2164. run from ImageStudio you must add this line manually.
  2165.  
  2166. ARexx tips
  2167. ==========
  2168.  
  2169. ARexx tip 1
  2170. -----------
  2171.  
  2172.      "How to turn stem arrays into strings."
  2173.  
  2174.    It usually desirable for commands that return arrays to return the
  2175. values in a stem, making the return values easier to deal with. In some
  2176. cases it is neccessary to pass these values back to ImageStudio after
  2177. reading or altering them. As ImageStudio commands can't accept stems
  2178. directly, these stems have to be converted back into strings.
  2179.  
  2180.    We suggest the following method, using the PALETTE_GET and
  2181. PALETTE_SET commands as examples of getting and setting an array of
  2182. values:
  2183.  
  2184.      /* Get the current palette */
  2185.      
  2186.      PALETTE_GET STEM OLDPALETTE.
  2187.      
  2188.      /* Convert the stem to a parameter list */
  2189.      
  2190.      NEWPALETTE = ''
  2191.      
  2192.      do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  2193.         NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  2194.         end
  2195.      
  2196.      /* Force the new palette back onto the image */
  2197.      
  2198.      PALETTE_SET PALETTE NEWPALETTE REMAP
  2199.  
  2200. ARexx tip 2
  2201. -----------
  2202.  
  2203.      "Shortening command names"
  2204.  
  2205.    Using the current ARexx command interpreter within ImageStudio, it
  2206. is possible to specify a shorter version of each ARexx command. For
  2207. example, `OP' could be used as a synonym for `OPEN' and `RG' is a
  2208. synonym for `RGB_TO_HSV'. The following should be noted however:
  2209.  
  2210.    * This behaviour may be removed in a future version of ImageStudio.
  2211.      Therefore we recommend that this feature only be used to reduce
  2212.      typing in the command shell (see Command_shell) and not be used in
  2213.      ARexx scripts.
  2214.  
  2215.    * If the shortened command name is ambiguous, the first matching
  2216.      command will be executed. For example, if the shortened command
  2217.      `REQUEST' is used, `REQUEST_DIR' will be executed.
  2218.  
  2219. Example scripts
  2220. ===============
  2221.  
  2222. BalanceTest
  2223. -----------
  2224.  
  2225. Description
  2226.      This script allows the user to see the result of changing the
  2227.      brightness, contrast and gamma values over their full ranges.
  2228.  
  2229.      An image is loaded in if one is not present already. The image is
  2230.      then divided into 3 strips - the top, middle and bottom
  2231.      representing changes to the balance, contrast and gamma
  2232.      respectively. Depending on the number of divisions the user
  2233.      chooses, each of the 3 strips is divided further horizontally and
  2234.      each of the brightness, contrast and  gamma values are applied
  2235.      starting from -100 on the left to +100 on the right. An odd number
  2236.      of horizontal divisions are used to leave a central, vertical area
  2237.      of the image which remains unchanged.
  2238.  
  2239. Known bugs
  2240.      None.
  2241.  
  2242. BatchConvert
  2243. ------------
  2244.  
  2245. Description
  2246.      This scripts allows the conversion of multiple images to be output
  2247.      as one image format.
  2248.  
  2249.      The script allows the following:
  2250.  
  2251.        1. Saving of the converted image into a different location as
  2252.           the source.
  2253.  
  2254.        2. Choose any of the available image formats to save, with
  2255.           controls over their subformat.
  2256.  
  2257.        3. Automatic file renaming.
  2258.  
  2259.        4. Automatic deleting of source images if different from the
  2260.           destination image.
  2261.  
  2262. Known bugs
  2263.      If the source and destination files are the same, but have
  2264.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2265.      script will delete the source file (which will be the destination
  2266.      file). To avoid this, make sure both filenames are both specified
  2267.      in the same manner.
  2268.  
  2269. BatchProcess
  2270. ------------
  2271.  
  2272. Description
  2273.      This scripts allows the processing of multiple images to be output
  2274.      as one image format. The script is based on `BatchConvert' (see
  2275.      BatchConvert).
  2276.  
  2277.      The commands to control the processing should be typed in to the
  2278.      appropriate requester as though they were ARexx commands to be
  2279.      executed in a script. For example:
  2280.  
  2281.           SCALE 640 480
  2282.  
  2283.      would scale each image to 640x480 pixels before saving out.
  2284.      Multiple commands can be separated with a semi-colon `;', for
  2285.      example:
  2286.  
  2287.           SCALE 800 600;COLOURS 256 DITHER FS
  2288.  
  2289.      would scale the image to 800x600 and then reduce to 256 colours
  2290.      with Floyd-Steinberg dithering before saving out. Commands are
  2291.      executed from left to right.
  2292.  
  2293.      The script allows the following:
  2294.  
  2295.        1. Saving of the processed image into a different location as
  2296.           the source.
  2297.  
  2298.        2. Choose any of the available image formats to save, with
  2299.           controls over their subformat.
  2300.  
  2301.        3. Automatic file renaming.
  2302.  
  2303.        4. Application of multiple commands to process the image before
  2304.           saving.
  2305.  
  2306.        5. Automatic deleting of source images if different from the
  2307.           destination image.
  2308.  
  2309. Known bugs
  2310.      If the source and destination files are the same, but have
  2311.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2312.      script will delete the source file (which will be the destination
  2313.      file). To avoid this, make sure both filenames are both specified
  2314.      in the same manner.
  2315.  
  2316. BatchProcessNotify
  2317. ------------------
  2318.  
  2319. Description
  2320.      This script starts a batch lot of processing to be performed when
  2321.      a given file is changed or created; the script is based on
  2322.      `BatchConvert' (see BatchProcess).
  2323.  
  2324.      This is useful if you wish to convert the output from a program
  2325.      that has generated multiple frames (e.g. a raytracer or landscape
  2326.      renderer) into a format that can be compiled into an animation
  2327.      (e.g. ILBM24 to HAM6).
  2328.  
  2329.      The first thing the user must select is the filename of the final
  2330.      file in the sequence. When this file has been created, ImageStudio
  2331.      will start the processing of the images. This file may not of
  2332.      course have been created yet, so the user will have to type the
  2333.      name into the file requester.
  2334.  
  2335.      After the user has specified the output format (see BatchProcess),
  2336.      the script will wait for the specified file be created before
  2337.      proceeding with the processing on all the files in the chosen
  2338.      directory with the same basename as the selected final filename.
  2339.  
  2340. Known bugs
  2341.      If the source and destination files are the same, but have
  2342.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2343.      script will delete the source file (which will be the destination
  2344.      file). To avoid this, make sure both filenames are both specified
  2345.      in the same manner.
  2346.  
  2347. Example
  2348.      The user wishes to convert the 24bit output files created by a
  2349.      raytracer into HAM6 format, ready for compiling into an animation.
  2350.      The animation is 200 frames and the files are numbered `pic.0001',
  2351.      `pic.0002' etc... and are located in the `Work:Render' directory.
  2352.      No extra processing is to be performed on the images.
  2353.  
  2354.      Upon running the BatchProcessNotify script, the user enters
  2355.      `Work:Render/pic.0200' as the final frame in the sequence and sets
  2356.      the output file format to be IFF-ILBM, HAM6.
  2357.  
  2358.      The script now waits for the final file to be created, and upon
  2359.      doing so, matches all files in the `Work:Render' directory that
  2360.      start with the basename `pic.'. 200 files should be found. Each of
  2361.      these files are loaded and saved as HAM6, before the script ends.
  2362.  
  2363. ConvolveTest
  2364. ------------
  2365.  
  2366. Description
  2367.      Applies a chosen set of convolution filters to an image.
  2368.  
  2369.      A number of convolution filters are chosen and the image is tiled
  2370.      depending on the number of filters chosen, each filter is applied
  2371.      to each of the tiles.
  2372.  
  2373. Known bugs
  2374.        1. The convolution filters chosen to apply *must* be taken from
  2375.           the directory currently shown in the `Convolves' floating
  2376.           palette. This is because convolution filters with the
  2377.           CONVOLVE command are chosen by name, not filename (see
  2378.           ARexx_CONVOLVE).
  2379.  
  2380.        2. The tiling algorithm used isn't very smart, the number of
  2381.           tiles vertically is the same as the number horizontally. This
  2382.           can lead to almost half of the image being unaffected if the
  2383.           number of chosen filters is just above the nearest square
  2384.           number.
  2385.  
  2386.        3. The maximum number of filters to be applied to the image is
  2387.           100.
  2388.  
  2389. Crop512x512
  2390. -----------
  2391.  
  2392. Description
  2393.      Removes blank area from unregistered images.
  2394.  
  2395.      When a large image in loaded into the unregistered version of
  2396.      ImageStudio, the actual image is only contained in the top-left
  2397.      512x512 pixels of the buffer. This script crops away the blank
  2398.      buffer to leave a buffer of only 512x512 pixels in size.
  2399.  
  2400. Known bugs
  2401.      None.
  2402.  
  2403. Demo
  2404. ----
  2405.  
  2406. Description
  2407.      Demonstrates some of the features of the ImageStudio ARexx
  2408.      interface.
  2409.  
  2410.      Simply follow the prompts to see the features being explained.
  2411.  
  2412. Known bugs
  2413.      None.
  2414.  
  2415. RegionRecall
  2416. ------------
  2417.  
  2418. Description
  2419.      Sets a previously remembered region.
  2420.  
  2421.      This script allows the region that was set with RegionStore (see
  2422.      RegionStore) to be recalled as the active region for the current
  2423.      image. The user is warned if there is already a currently selected
  2424.      region which will be lost if the remembered region is recalled.
  2425.  
  2426. Known bugs
  2427.      None.
  2428.  
  2429. RegionStore
  2430. -----------
  2431.  
  2432. Description
  2433.      Remembers a region for future recall.
  2434.  
  2435.      The region maybe recalled by using the RegionRecall (see
  2436.      RegionRecall) script.
  2437.  
  2438. Known bugs
  2439.      None.
  2440.  
  2441. ToIcon
  2442. ------
  2443.  
  2444. Description
  2445.      Resizes and remaps the image to that suitable as an icon.
  2446.  
  2447.      The script allows the following:
  2448.  
  2449.        1. Choosing of an alternative palette other than the default 4
  2450.           colour Workbench palette.
  2451.  
  2452.        2. Copying of the image into the clipboard, ready to be pasted
  2453.           into IconEdit.
  2454.  
  2455. Known bugs
  2456.      None.
  2457.  
  2458. ARexx commands
  2459. ==============
  2460.  
  2461.    More detailed information on each of the individual ARexx commands
  2462. can be found below.
  2463.  
  2464. BALANCE
  2465. -------
  2466.  
  2467. Command
  2468.      BALANCE
  2469.  
  2470. Parameters template
  2471.      BRIGHTNESS/N, CONTRAST/N, GAMMA/N, NORED/S, NOGREEN/S,
  2472.      NOBLUE/S
  2473.  
  2474. Return template
  2475.      None.
  2476.  
  2477. Description
  2478.      This command allows the user to change the colour balance of the
  2479.      image.  The user may select specify one of the BRIGHTNESS,
  2480.      CONTRAST or GAMMA values to adjust - specifying more than one will
  2481.      only result in the first operation being acted upon.
  2482.  
  2483.      By default, the operation is applied to all the red, green and
  2484.      blue values of the image. The user may stop any of the RGB
  2485.      channels being affected by selecting any of the NORED, NOGREEN or
  2486.      NOBLUE switches. Multiple switches may be used, but not all three
  2487.      together.
  2488.  
  2489.      See Show_balance, for a full description of altering the image's
  2490.      colour balance.
  2491.  
  2492. Parameters
  2493.     BRIGHTNESS
  2494.           This adjusts the brightness / darkness of the image. Valid
  2495.           values are between -100 (make everything black) to 100 (make
  2496.           everything twice as bright).
  2497.  
  2498.     CONTRAST
  2499.           This adjusts the relative difference between dark and light
  2500.           colours. Valid values are -100 (everything to mid-grey) to
  2501.           100 (everything to extreme contrast).
  2502.  
  2503.     GAMMA
  2504.           This adjusts the gamma response of the image. Valid values
  2505.           are -100 to 100.
  2506.  
  2507. Returns
  2508.      Nothing.
  2509.  
  2510. Errors
  2511.      rc = 0 if the operation was successful.
  2512.  
  2513.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2514.      string describing the problem.
  2515.  
  2516. Example
  2517.      The following adjusts the gamma of the image by 10:
  2518.  
  2519.           BALANCE GAMMA 10
  2520.  
  2521.      The following darkens the green componant of the image by -20:
  2522.  
  2523.           BALANCE BRIGHTNESS -20 NORED NOBLUE
  2524.  
  2525. Known bugs
  2526.      None.
  2527.  
  2528. COLOURS
  2529. -------
  2530.  
  2531. Command
  2532.      COLOURS
  2533.  
  2534. Parameters template
  2535.      NUMCOLOURS/N, SIXTEENMILLION/S, COLOURCHOICE, DITHER
  2536.  
  2537. Return template
  2538.      None.
  2539.  
  2540. Description
  2541.      Allows the user to change the number of colours of the current
  2542.      image. The image can be changed to either 2-256 colours or 16
  2543.      million colours (24bit). Methods of colour choice and dithering
  2544.      are available when reducing the number of colours in the image.
  2545.  
  2546.      See Colours, for a full description of changing the number of
  2547.      colours in the image.
  2548.  
  2549. Parameters
  2550.     NUMCOLOURS/N
  2551.           The number of colours desired for the image. Valid values are
  2552.           2 to 256, the result will always be a colour-mapped image.
  2553.  
  2554.     SIXTEENMILLION/S
  2555.           In order to increase the number of possible colours in the
  2556.           image to the maximum possible (16 million), the user should
  2557.           specify this switch. The user may not specify this switch as
  2558.           well as the NUMCOLOURS option.
  2559.  
  2560.     COLOURCHOICE
  2561.           This is a string which determines which method of colour
  2562.           choice should be used to reduce the number of colours in an
  2563.           image. At the present time, HECKBERT is the only available
  2564.           option and will be used by default if no COLOURCHOICE is
  2565.           specified.
  2566.  
  2567.     DITHER
  2568.           This string determines which method of dithering should be
  2569.           used when reducing the number of colours in an image. Valid
  2570.           strings are: NONE, FLOYD-STEINBERG or FS, STUCKI, JARVIS,
  2571.           BURKES, SIERRA and STEVENSON-ARCE. By default, no dithering
  2572.           is used.
  2573.  
  2574. Returns
  2575.      Nothing.
  2576.  
  2577. Errors
  2578.      rc = 0 if the operation was successful.
  2579.  
  2580.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2581.      string describing the problem.
  2582.  
  2583. Example
  2584.      The following reduces the image to 16 colours with Floyd-Steinberg
  2585.      dithering:
  2586.  
  2587.           COLOURS NUMCOLOURS 16 DITHER "FS"
  2588.  
  2589.      The following increases the image to 24bits, allowing 16 million
  2590.      possible colours:
  2591.  
  2592.           COLOURS SIXTEENMILLION
  2593.  
  2594. Known bugs
  2595.      None.
  2596.  
  2597. CONVOLVE
  2598. --------
  2599.  
  2600. Command
  2601.      CONVOLVE
  2602.  
  2603. Parameters template
  2604.      NAME/A
  2605.  
  2606. Return template
  2607.      None.
  2608.  
  2609. Description
  2610.      Applies the named convolution to the 24bit image. Convolution can
  2611.      only be applied to 16 million colour (24bit) images.
  2612.  
  2613.      See Show_convolves, for a full description of convolution filters.
  2614.  
  2615. Parameters
  2616.     NAME/A
  2617.           The name of the convolution filter as it appears in the "Show
  2618.           convolves" floating palette.
  2619.  
  2620. Returns
  2621.      Nothing.
  2622.  
  2623. Errors
  2624.      rc = 0 if the operation was successful.
  2625.  
  2626.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2627.      string describing the problem.
  2628.  
  2629. Example
  2630.      The following applies the "Blur high" convolution filter to the
  2631.      current image:
  2632.  
  2633.           CONVOLVE NAME '"Blur high"'
  2634.  
  2635.      The following increases the image to 24bits if necessary, then
  2636.      applies the "Edge detect" convolution filter:
  2637.  
  2638.           IMAGEINFO_GET STEM IMAGEINFO.
  2639.           
  2640.           if IMAGEINFO.DEPTH ~= 24 then do
  2641.              COLOURS SIXTEENMILLION
  2642.              end
  2643.           
  2644.           CONVOLVE NAME '"Edge detect"'
  2645.  
  2646. Known bugs
  2647.      None.
  2648.  
  2649. COPY
  2650. ----
  2651.  
  2652. Command
  2653.      COPY
  2654.  
  2655. Parameters template
  2656.      None.
  2657.  
  2658. Return template
  2659.      None.
  2660.  
  2661. Description
  2662.      Copies the current image into the clipboard buffer.
  2663.  
  2664.      See Copy, for a full description of copying images to the
  2665.      clipboard.
  2666.  
  2667. Parameters
  2668.      None.
  2669.  
  2670. Returns
  2671.      Nothing.
  2672.  
  2673. Errors
  2674.      rc = 0 if the operation was successful.
  2675.  
  2676.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2677.      string describing the problem.
  2678.  
  2679. Example
  2680.      The following copies the current image to the clipboard:
  2681.  
  2682.           COPY
  2683.  
  2684. Known bugs
  2685.      None.
  2686.  
  2687. CROP
  2688. ----
  2689.  
  2690. Command
  2691.      CROP
  2692.  
  2693. Parameters template
  2694.      None.
  2695.  
  2696. Return template
  2697.      None.
  2698.  
  2699. Description
  2700.      Crops the image to the currently selected region. A region must be
  2701.      selected for this command to work.
  2702.  
  2703.      See Crop, for a full description of cropping images.
  2704.  
  2705. Parameters
  2706.      None.
  2707.  
  2708. Returns
  2709.      Nothing.
  2710.  
  2711. Errors
  2712.      rc = 0 if the operation was successful.
  2713.  
  2714.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2715.      string describing the problem.
  2716.  
  2717. Example
  2718.      The following crops the current image to the currently selected
  2719.      region:
  2720.  
  2721.           CROP
  2722.  
  2723.      The following crops the current image to the currently selected
  2724.      region only if a region exists:
  2725.  
  2726.           REGION_GET STEM REGIONINFO.
  2727.           
  2728.           if REGIONINFO.MINX ~= -1 then do
  2729.              CROP
  2730.              end
  2731.  
  2732. Known bugs
  2733.      None.
  2734.  
  2735. EFFECT
  2736. ------
  2737.  
  2738. Command
  2739.      EFFECT
  2740.  
  2741. Parameters template
  2742.      NAME/A, ARGS
  2743.  
  2744. Return template
  2745.      None.
  2746.  
  2747. Description
  2748.      Applies the named effect to the image. Optional arguments that the
  2749.      effect may require can be passed via the ARGS parameter.
  2750.  
  2751.      See Effects, for a full description of the available effects.
  2752.  
  2753. Parameters
  2754.     NAME/A
  2755.           The name of the effect to apply, as it appears in the
  2756.           "Effects" floating palette.
  2757.  
  2758.     ARGS
  2759.           Any optional arguments that the desired effect may require.
  2760.  
  2761. Returns
  2762.      Nothing.
  2763.  
  2764. Errors
  2765.      rc = 0 if the operation was successful.
  2766.  
  2767.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2768.      string describing the problem.
  2769.  
  2770. Example
  2771.      The following applies the "Negative" effect to the image:
  2772.  
  2773.           EFFECT NAME "Negative"
  2774.  
  2775.      The following pixelizes the image to a size of 4 pixels:
  2776.  
  2777.           EFFECT NAME "Pixelize" ARGS '"PIXELSIZE 4"'
  2778.  
  2779. Known bugs
  2780.      None.
  2781.  
  2782. FILES_MATCH
  2783. -----------
  2784.  
  2785. Command
  2786.      FILES_MATCH
  2787.  
  2788. Parameters template
  2789.      PATHPART/A, PATTERN
  2790.  
  2791. Return template
  2792.      FILEPARTS/M
  2793.  
  2794. Description
  2795.      Returns a list of files in a directory matching an optional
  2796.      pattern.
  2797.  
  2798. Parameters
  2799.     PATHPART/A
  2800.           The path (directory) name from which the filenames should be
  2801.           taken.
  2802.  
  2803.     PATTERN
  2804.           Optional file matching pattern, to allow the inclusion of
  2805.           only specific filenames. By default, all the files in a
  2806.           directory are returned.
  2807.  
  2808. Returns
  2809.     FILEPARTS/M
  2810.           An array of strings containing the matching filenames in the
  2811.           given PATH.
  2812.  
  2813. Errors
  2814.      rc = 0 if the operation was successful.
  2815.  
  2816.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2817.      string describing the problem.
  2818.  
  2819. Example
  2820.      The following gets all the filenames from the "Pics" directory and
  2821.      returns them in the stem FILENAMES.:
  2822.  
  2823.           FILES_MATCH PATHPART "Pics" STEM FILENAMES.
  2824.  
  2825.      The following gets all the filenames in the current directory with
  2826.      a ".ilbm" or ".iff" filename extension:
  2827.  
  2828.           FILES_MATCH PATHPART '""' PATTERN "#?.(ilbm|iff)" STEM FILENAMES.
  2829.  
  2830.      The following gets all the filenames in the "S:" directory that
  2831.      start with an "S" and puts them in pop up requesters:
  2832.  
  2833.           FILES_MATCH PATHPART "S:" PATTERN "S#?" STEM FILENAMES.
  2834.           
  2835.           do l = 0 to (FILENAMES.FILEPARTS.COUNT - 1)
  2836.              REQUEST_MESSAGE BUTTONTEXT "More|Cancel" AUTOCANCEL,
  2837.                 TEXT '"'FILENAMES.FILEPARTS.l'"'
  2838.              end
  2839.  
  2840. Known bugs
  2841.      None.
  2842.  
  2843. FILE_JOIN
  2844. ---------
  2845.  
  2846. Command
  2847.      FILE_JOIN
  2848.  
  2849. Parameters template
  2850.      PATHPART/A, FILEPART/A
  2851.  
  2852. Return template
  2853.      FILE
  2854.  
  2855. Description
  2856.      Joins the path part of a filename to the file part of a filename,
  2857.      returning the full filename. Adds `/' and `:' where appropriate to
  2858.      create a full filename.
  2859.  
  2860. Parameters
  2861.     PATHPART/A
  2862.           The path (directory) part of the filename to be created.
  2863.  
  2864.     FILEPART/A
  2865.           The file part of the filename to be created.
  2866.  
  2867. Returns
  2868.     FILE
  2869.           The full filename created from the path and file parts.
  2870.  
  2871. Errors
  2872.      rc = 0 if the operation was successful.
  2873.  
  2874.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2875.      string describing the problem.
  2876.  
  2877. Example
  2878.      The following creates the filename "Pics/HappyFace_240x250.bmp"
  2879.      from the seperate path and fileparts - the result is put in a pop
  2880.      up requester:
  2881.  
  2882.           FILE_JOIN PATHPART "Pics" FILEPART "HappyFace_240x250.bmp"
  2883.           
  2884.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2885.  
  2886.      The following creates the filename "T:TempImage.jpg" from the
  2887.      seperate path and fileparts (note how the '/' seperater is not
  2888.      needed) - the result is put in a pop up requester:
  2889.  
  2890.           FILE_JOIN PATHPART "T:" FILEPART "TempImage.jpg"
  2891.           
  2892.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2893.  
  2894. Known bugs
  2895.      None.
  2896.  
  2897. FILE_RENAME
  2898. -----------
  2899.  
  2900. Command
  2901.      FILE_RENAME
  2902.  
  2903. Parameters template
  2904.      FILE/A, FROM/A, TO/A
  2905.  
  2906. Return template
  2907.      FILE
  2908.  
  2909. Description
  2910.      Replaces the last occurrance of a given string in a filename with
  2911.      another string. Useful for renaming filename extensions.
  2912.  
  2913.      Note: *This command doesn't actually rename the file*, it simply
  2914.      returns what the new filename should be.
  2915.  
  2916.      Hint: To rename *any* filename extension to a chosen extension,
  2917.      you can set "FROM ." and "TO .newextension". This removes any old
  2918.      extension and replaces it with the given new extension. This can
  2919.      be useful if you are converting a large number of different format
  2920.      files to one format (see BatchConvert).
  2921.  
  2922. Parameters
  2923.     FILE/A
  2924.           The original filename to be renamed.
  2925.  
  2926.     FROM/A
  2927.           The string to remove from the old filename.
  2928.  
  2929.     TO/A
  2930.           The string to replace the FROM string in the filename.
  2931.  
  2932. Returns
  2933.     FILE
  2934.           The renamed filename. If no FROM string was found in the
  2935.           original filename, the original filename is returned with the
  2936.           new TO string appended.
  2937.  
  2938. Errors
  2939.      rc = 0 if the operation was successful.
  2940.  
  2941.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2942.      string describing the problem.
  2943.  
  2944. Example
  2945.      The following renames the filename "Zebra_250x250.pcx" to
  2946.      "Zebra_250x250.ilbm", the final filename is placed in RESULT:
  2947.  
  2948.           FILE_RENAME FILE "Zebra_250x250.pcx" FROM ".pcx" TO ".ilbm"
  2949.  
  2950.      The following appends ".out" to the filename "pic.0001":
  2951.  
  2952.           FILE_RENAME FILE "pic.0001" FROM "XXX" TO ".out"
  2953.  
  2954. Known bugs
  2955.      None.
  2956.  
  2957. FILE_SPLIT
  2958. ----------
  2959.  
  2960. Command
  2961.      FILE_SPLIT
  2962.  
  2963. Parameters template
  2964.      FILE/A
  2965.  
  2966. Return template
  2967.      PATHPART, FILEPART
  2968.  
  2969. Description
  2970.      Splits the given filename into seperate path and file parts.
  2971.  
  2972. Parameters
  2973.     FILE/A
  2974.           The full filename to be split.
  2975.  
  2976. Returns
  2977.     PATHPART
  2978.           The path (directory) part of the filename.
  2979.  
  2980.     FILEPART
  2981.           The file part of the filename.
  2982.  
  2983. Errors
  2984.      rc = 0 if the operation was successful.
  2985.  
  2986.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2987.      string describing the problem.
  2988.  
  2989. Example
  2990.      The following seperates the filename "Pics/HappyFace_240x250.bmp"
  2991.      into seperate path and fileparts - the result is put in a pop up
  2992.      requester:
  2993.  
  2994.           FILE_SPLIT FILE "Pics/HappyFace_240x250.bmp" STEM FILENAME.
  2995.           
  2996.           REQUEST_MESSAGE TEXT '"Path:'FILENAME.PATHPART,
  2997.              'File:'FILENAME.FILEPART'"'
  2998.  
  2999.      The following seperates the filename "T:TempImage.jpg" into
  3000.      seperate path and fileparts - the result is put into the default
  3001.      settings of a file requester:
  3002.  
  3003.           FILE_SPLIT FILE "T:TempImage.jpg" STEM FILENAME.
  3004.           
  3005.           REQUEST_FILE PATHPART '"'FILENAME.PATHPART'"',
  3006.              FILE '"'FILENAME.PATHPART'"'
  3007.  
  3008. Known bugs
  3009.      None.
  3010.  
  3011. FULL_IMAGE
  3012. ----------
  3013.  
  3014. Command
  3015.      FULL_IMAGE
  3016.  
  3017. Parameters template
  3018.      None.
  3019.  
  3020. Return template
  3021.      None.
  3022.  
  3023. Description
  3024.      Displays the full image in the preview window.
  3025.  
  3026.      See Full_image, for a full description of this command.
  3027.  
  3028. Parameters
  3029.      None.
  3030.  
  3031. Returns
  3032.      Nothing.
  3033.  
  3034. Errors
  3035.      rc = 0 if the operation was successful.
  3036.  
  3037.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3038.      string describing the problem.
  3039.  
  3040. Example
  3041.      The following displays the full image in the preview window:
  3042.  
  3043.           FULL_IMAGE
  3044.  
  3045. Known bugs
  3046.      None.
  3047.  
  3048. GUI_BLOCK
  3049. ---------
  3050.  
  3051. Command
  3052.      GUI_BLOCK
  3053.  
  3054. Parameters template
  3055.      None.
  3056.  
  3057. Return template
  3058.      None.
  3059.  
  3060. Description
  3061.      Blocks all input to any open ImageStudio windows. This command is
  3062.      used to stop the user from entering any more input into the
  3063.      ImageStudio windows whilst an ARexx script is running. If the
  3064.      script has been started from ImageStudio (i.e. from the "Scripts"
  3065.      floating palette), all the GUI blocking / unblocking is handled
  3066.      automatically - the GUI is blocked when the script starts and
  3067.      unblocked when it finishes.
  3068.  
  3069.      If the script is started externally (i.e. from another ARexx
  3070.      program or from the CLI using `rx'), the user should block the GUI
  3071.      if they think the ARexx is going to spend a long time processing
  3072.      some information. The GUI is still automatically blocked when a
  3073.      requester is opened however.
  3074.  
  3075. Parameters
  3076.      None.
  3077.  
  3078. Returns
  3079.      Nothing.
  3080.  
  3081. Errors
  3082.      rc = 0 if the operation was successful.
  3083.  
  3084.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3085.      string describing the problem.
  3086.  
  3087. Example
  3088.      The following blocks all input to the ImageStudio GUI:
  3089.  
  3090.           GUI_BLOCK
  3091.  
  3092. Known bugs
  3093.      None.
  3094.  
  3095. GUI_UNBLOCK
  3096. -----------
  3097.  
  3098. Command
  3099.      GUI_UNBLOCK
  3100.  
  3101. Parameters template
  3102.      None.
  3103.  
  3104. Return template
  3105.      None.
  3106.  
  3107. Description
  3108.      Unblocks all input to any open ImageStudio windows after a
  3109.      GUI_BLOCK command. If the script has been started from ImageStudio
  3110.      (i.e. from the "Scripts" floating palette), all the GUI blocking /
  3111.      unblocking is handled automatically - the GUI is blocked when the
  3112.      script starts and unblocked when it finishes.
  3113.  
  3114.      If the scripts is started externally (i.e. from another ARexx
  3115.      program or from the CLI using `rx'), the user should unblock the
  3116.      GUI after a GUI_BLOCK command has been issued. The GUI is still
  3117.      automatically unblocked after a requester has been satisfied
  3118.      however.
  3119.  
  3120. Parameters
  3121.      None.
  3122.  
  3123. Returns
  3124.      Nothing.
  3125.  
  3126. Errors
  3127.      rc = 0 if the operation was successful.
  3128.  
  3129.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3130.      string describing the problem.
  3131.  
  3132. Example
  3133.      The following unblocks all input to the ImageStudio GUI:
  3134.  
  3135.           GUI_UNBLOCK
  3136.  
  3137. Known bugs
  3138.      None.
  3139.  
  3140. HELP
  3141. ----
  3142.  
  3143. Command
  3144.      HELP
  3145.  
  3146. Parameters template
  3147.      COMMAND
  3148.  
  3149. Return template
  3150.      COMMANDDESC, COMMANDLIST/M
  3151.  
  3152. Description
  3153.      Returns help on a given ARexx command. This command is meant
  3154.      mainly for use with the command shell (see Command_shell), as it
  3155.      is of very little use within a script. Both the command's
  3156.      parameter and return templates are returned.
  3157.  
  3158. Parameters
  3159.     COMMAND
  3160.           The ARexx command to obtain help on.
  3161.  
  3162. Returns
  3163.     COMMANDDESC
  3164.           The parameter template.
  3165.  
  3166.     COMMANDLIST/M
  3167.           The result template.
  3168.  
  3169. Errors
  3170.      rc = 0 if the operation was successful.
  3171.  
  3172.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3173.      string describing the problem.
  3174.  
  3175. Example
  3176.      The following gets help on the ARexx OPEN command:
  3177.  
  3178.           HELP OPEN
  3179.  
  3180.      The following gets help on the HELP command:
  3181.  
  3182.           HELP HELP
  3183.  
  3184. Known bugs
  3185.      None.
  3186.  
  3187. HSV_TO_RGB
  3188. ----------
  3189.  
  3190. Command
  3191.      HSV_TO_RGB
  3192.  
  3193. Parameters template
  3194.      H/N/A, S/N/A, V/N/A
  3195.  
  3196. Return template
  3197.      R/N, G/N, B/N
  3198.  
  3199. Description
  3200.      Converts a HSV colour value into a RGB colour value.
  3201.  
  3202.      See Colour representations, for more details on RGB and HSV colour
  3203.      representations.
  3204.  
  3205. Parameters
  3206.     H/N/A
  3207.           The hue value of the colour to convert. Valid values are 0 to
  3208.           360.
  3209.  
  3210.     S/N/A
  3211.           The saturation value of the colour to convert. Valid values
  3212.           are 0 to 100.
  3213.  
  3214.     V/N/A
  3215.           The value of the colour to convert. Valid values are 0 to 100.
  3216.  
  3217. Returns
  3218.     R/N
  3219.           The red componant value of the colour.
  3220.  
  3221.     G/N
  3222.           The green componant value of the colour.
  3223.  
  3224.     B/N
  3225.           The blue componant value of the colour.
  3226.  
  3227. Errors
  3228.      rc = 0 if the operation was successful.
  3229.  
  3230.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3231.      string describing the problem.
  3232.  
  3233. Example
  3234.      The following converts yellow from HSV to RGB representation,
  3235.      putting the result in RESULT:
  3236.  
  3237.           HSV_TO_RGB 60 100 100
  3238.  
  3239.      The following converts mid-grey from HSV to RGB representation,
  3240.      putting the result in the stem COLOUR.:
  3241.  
  3242.           HSV_TO_RGB 0 0 49 STEM COLOUR.
  3243.  
  3244. Known bugs
  3245.      None.
  3246.  
  3247. IMAGEINFO_GET
  3248. -------------
  3249.  
  3250. Command
  3251.      IMAGEINFO_GET
  3252.  
  3253. Parameters template
  3254.      None.
  3255.  
  3256. Return template
  3257.      WIDTH/N, HEIGHT/N, DEPTH/N, FILE, MODEID/N, CHANGED/N
  3258.  
  3259. Description
  3260.      Returns information about the current image. If no image is
  3261.      currently loaded, -1 is returned in all the numeric fields.
  3262.  
  3263. Parameters
  3264.      None.
  3265.  
  3266. Returns
  3267.     WIDTH/N
  3268.           The width of the image in pixels, -1 if no image is loaded.
  3269.  
  3270.     HEIGHT/N
  3271.           The height of the image in pixels, -1 if no image is loaded.
  3272.  
  3273.     DEPTH/N
  3274.           The colour depth of the image, -1 if no image is loaded.
  3275.           Returns 1 to 8 for 2 to 256 colour images, 24 for 16 million
  3276.           colour images.
  3277.  
  3278.     FILE
  3279.           The full filename of the current image.
  3280.  
  3281.     MODEID/N
  3282.           The current screenmode of the image. This number is not meant
  3283.           to be interpreted directly, but can be used to be passed to
  3284.           the screenmode requester (see ARexx_REQUEST_SCREENMODE). When
  3285.           the image loaded is a non IFF-ILBM image, this screenmode
  3286.           value is "guessed" at by ImageStudio to be the closest Amiga
  3287.           equivalent based on the image's dimensions.
  3288.  
  3289.     CHANGED/N
  3290.           A numeric value, taking the value 1 to represent a change in
  3291.           the current project or 0 for no change.
  3292.  
  3293. Errors
  3294.      rc = 0 if the operation was successful.
  3295.  
  3296.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3297.      string describing the problem.
  3298.  
  3299. Example
  3300.      The following gets the current image's information and returns it
  3301.      in the stem IMAGE.:
  3302.  
  3303.           IMAGEINFO_GET STEM IMAGE.
  3304.  
  3305.      The following gets the current image's info and opens a screenmode
  3306.      requester with the current screenmode if an image is loaded:
  3307.  
  3308.           IMAGEINFO_GET STEM IMAGE.
  3309.           
  3310.           if IMAGE.WIDTH ~= -1 then do
  3311.              REQUEST_SCREENMODE MODEID IMAGE.MODEID
  3312.              end
  3313.  
  3314. Known bugs
  3315.      None.
  3316.  
  3317. IMAGEINFO_SET
  3318. -------------
  3319.  
  3320. Command
  3321.      IMAGEINFO_SET
  3322.  
  3323. Parameters template
  3324.      MODEID/N
  3325.  
  3326. Return template
  3327.      None.
  3328.  
  3329. Description
  3330.      Sets information about the current image. Currently, only the
  3331.      image's screenmode can be set.
  3332.  
  3333. Parameters
  3334.     MODEID/N
  3335.           The current screenmode ID of the image.
  3336.  
  3337. Returns
  3338.      Nothing.
  3339.  
  3340. Errors
  3341.      rc = 0 if the operation was successful.
  3342.  
  3343.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3344.      string describing the problem.
  3345.  
  3346. Example
  3347.      The following sets the current image's screenmode to LoRes.
  3348.  
  3349.           IMAGEINFO_SET MODEID 0
  3350.  
  3351.      The following opens up a screenmode requester and allows the user
  3352.      to choose the screenmode of the current image:
  3353.  
  3354.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  3355.           
  3356.           IMAGEINFO_SET MODEID SCREENMODEINFO.MODEID
  3357.  
  3358. Known bugs
  3359.      None.
  3360.  
  3361. NOTIFY_DIR
  3362. ----------
  3363.  
  3364. Command
  3365.      NOTIFY_DIR
  3366.  
  3367. Parameters template
  3368.      PATHPART/A
  3369.  
  3370. Return template
  3371.      FILEPART, ACTION
  3372.  
  3373. Description
  3374.      Monitors the specified directory and returns when a file is either
  3375.      updated or added to the directory. The affected filename is
  3376.      returned as well as the action that had been performed (either
  3377.      updated or added).
  3378.  
  3379.      Whilst the command is waiting for any change in the specified
  3380.      directory, the fuelgauge will flash and the user may press the
  3381.      `Abort' button on the infobar to cancel the operation.
  3382.  
  3383. Parameters
  3384.     PATHPART
  3385.           The path (directory) to be monitored.
  3386.  
  3387. Returns
  3388.     FILEPART
  3389.           The filename of the file that has been changed; the filename
  3390.           returned is without the full pathname. See ARexx_FILE_JOIN,
  3391.           for information on how to add the path part of the filename
  3392.           to create a full filename.
  3393.  
  3394.     ACTION
  3395.           A string containing a descripion of the action performed on
  3396.           FILE, either "ADDED" if the file is new to the directory or
  3397.           "UPDATED" if the file has been updated since the notify
  3398.           started.
  3399.  
  3400. Errors
  3401.      rc = 0 if the operation was successful.
  3402.  
  3403.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3404.      string describing the problem.
  3405.  
  3406. Example
  3407.      The following monitors the ram disk for any change, returning any
  3408.      change in the NOTIFYINFO. stem:
  3409.  
  3410.           NOTIFY_DIR PATHPART "ram:" STEM NOTIFYINFO.
  3411.  
  3412.      The following monitors the "Pics" directory for any change and
  3413.      pops up a requester informing the user of what has happened:
  3414.  
  3415.           NOTIFY_DIR PATHPART "Pics" STEM NOTIFYINFO.
  3416.           
  3417.           REQUEST_MESSAGE TEXT '"'NOTIFYINFO.FILEPART||' has been '||,
  3418.              NOTIFYINFO.ACTION'"'
  3419.  
  3420. Known bugs
  3421.        1. AmigaDos won't notify us if a file is deleted from the
  3422.           directory.
  3423.  
  3424.        2. If many files are added / updated in the directory quickly,
  3425.           NOTIFY_DIR may not necessarily return the first changed file.
  3426.           The same is true if the a file is created with an icon,
  3427.           NOTIFY_DIR may return the name of the ".info" file.
  3428.  
  3429.        3. File notification is not implemented on all filesystems
  3430.           (notably some network filesystems). No problems occur with
  3431.           either the standard OFS or FFS filesystems.
  3432.  
  3433. NOTIFY_FILE
  3434. -----------
  3435.  
  3436. Command
  3437.      NOTIFY_FILE
  3438.  
  3439. Parameters template
  3440.      FILE/A
  3441.  
  3442. Return template
  3443.      None.
  3444.  
  3445. Description
  3446.      Waits for a change in the specified file. The function will return
  3447.      if either a new file by the given name is created, or if the file
  3448.      is updated. Unlike NOTIFY_DIR (see ARexx_NOTIFY_DIR), NOTIFY_FILE
  3449.      also returns if the specified file is deleted.
  3450.  
  3451.      Whilst the command is waiting for any change in the specified
  3452.      file, the fuelgauge will flash and the user may press the `Abort'
  3453.      button on the infobar to cancel the operation.
  3454.  
  3455.      This function can be used to trigger ImageStudio to perform a
  3456.      given set of operations when the specified file has been created.
  3457.      For example, if 50 frames of an animation were being rendered by a
  3458.      ray-tracer then ImageStudio could be told to wait for the last
  3459.      frame to be created an then convert them all to HAM format.
  3460.  
  3461. Parameters
  3462.     FILE
  3463.           The file to be monitored.
  3464.  
  3465. Returns
  3466.      Nothing.
  3467.  
  3468. Errors
  3469.      rc = 0 if the operation was successful.
  3470.  
  3471.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3472.      string describing the problem.
  3473.  
  3474. Example
  3475.      The following monitors the file "Pics/CheetahFace250x200.ilbm" for
  3476.      any change:
  3477.  
  3478.           NOTIFY_FILE "Pics/CheetahFace250x200.ilbm"
  3479.  
  3480.      The following waits for the 50th frame in the sequence "Render."
  3481.      to be created in the "Work:RayTrace":
  3482.  
  3483.           NOTIFY_FILE "Work:RayTrace/Render.050"
  3484.  
  3485. Known bugs
  3486.      File notification is not implemented on all filesystems (notably
  3487.      some network filesystems). No problems occur with either the
  3488.      standard OFS or FFS filesystems.
  3489.  
  3490. OPEN
  3491. ----
  3492.  
  3493. Command
  3494.      OPEN
  3495.  
  3496. Parameters template
  3497.      FILE/A, FORMAT, ARGS, FORCE/S
  3498.  
  3499. Return template
  3500.      None.
  3501.  
  3502. Description
  3503.      Loads the specified file into ImageStudio. Most file formats are
  3504.      automatically recognised by the program, but it is possible to
  3505.      specify extra information with the FORMAT and ARGS parameters.
  3506.  
  3507. Parameters
  3508.     FILE
  3509.           The filename of the file to be loaded.
  3510.  
  3511.     FORMAT
  3512.           Most file formats are automatically recognised by
  3513.           ImageStudio, but some raw formats need to be specified. If
  3514.           the file to be loaded is known to be a raw format, this
  3515.           parameter should be used to specify the file format. See File
  3516.           formats, for more information on raw file formats.
  3517.  
  3518.     ARGS
  3519.           Some file formats require extra information to be specified a
  3520.           load time, this parameter should be used to specify more
  3521.           information. See File formats, for more information on extra
  3522.           arguments allowed by the loaders.
  3523.  
  3524.     FORCE/S
  3525.           By default the user will be warned if they are about to
  3526.           overwrite the current project. By specifying FORCE, the user
  3527.           is not warned.
  3528.  
  3529. Returns
  3530.      Nothing.
  3531.  
  3532. Errors
  3533.      rc = 0 if the operation was successful.
  3534.  
  3535.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3536.      string describing the problem.
  3537.  
  3538. Example
  3539.      The following opens the file "Pics/CheetahFace250x200.ilbm":
  3540.  
  3541.           OPEN "Pics/CheetahFace250x200.ilbm"
  3542.  
  3543. Known bugs
  3544.      None.
  3545.  
  3546. PALETTE_GET
  3547. -----------
  3548.  
  3549. Command
  3550.      PALETTE_GET
  3551.  
  3552. Parameters template
  3553.      None.
  3554.  
  3555. Return template
  3556.      PALETTE/N/M
  3557.  
  3558. Description
  3559.      Gets the palette information from the current image.
  3560.  
  3561. Parameters
  3562.      None.
  3563.  
  3564. Returns
  3565.     PALETTE/N/M
  3566.           An array of the colours in the palette, ordered red, green
  3567.           then blue. Check PALETTE.COUNT for the number of entries in
  3568.           the array, divide this value by 3 to get the number of
  3569.           colours in the palette.
  3570.  
  3571. Errors
  3572.      rc = 0 if the operation was successful.
  3573.  
  3574.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3575.      string describing the problem.
  3576.  
  3577. Example
  3578.      The following gets the palette from the current image and returns
  3579.      it in the PALETTE. stem:
  3580.  
  3581.           PALETTE_GET STEM PALETTE.
  3582.  
  3583.      The following gets the palette from the current image (if
  3584.      possible) and puts the first colour value in a requester:
  3585.  
  3586.           IMAGEINFO_GET STEM IMAGEINFO.
  3587.           
  3588.           if IMAGEINFO.DEPTH ~= 24 then do
  3589.              PALETTE_GET STEM PALETTE.
  3590.           
  3591.              numcolours = PALETTE.PALETTE.COUNT / 3
  3592.           
  3593.              REQUEST_MESSAGE TEXT '"'numcolours||' colours, colour 0 = '||,
  3594.                 PALETTE.PALETTE.0||','||PALETTE.PALETTE.1||','||,
  3595.                 PALETTE.PALETTE.2||'"'
  3596.              end
  3597.           else do
  3598.              REQUEST_MESSAGE TEXT '"Image has no palette."'
  3599.              end
  3600.  
  3601. Known bugs
  3602.      None.
  3603.  
  3604. PALETTE_LOAD
  3605. ------------
  3606.  
  3607. Command
  3608.      PALETTE_LOAD
  3609.  
  3610. Parameters template
  3611.      FILE/A, DITHER
  3612.  
  3613. Return template
  3614.      None.
  3615.  
  3616. Description
  3617.      Loads and remaps a palette onto the current image. Dithering is
  3618.      also allowed to get a better approximation with the new palette.
  3619.  
  3620. Parameters
  3621.     FILE/A
  3622.           The filename of the palette file to load.
  3623.  
  3624.     DITHER
  3625.           A string containing the name of the dither to apply when
  3626.           applying the new palette. The same dither names as the
  3627.           COLOURS command are used (see ARexx_COLOURS). By default, no
  3628.           dithering is applied.
  3629.  
  3630. Returns
  3631.      Nothing.
  3632.  
  3633. Errors
  3634.      rc = 0 if the operation was successful.
  3635.  
  3636.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3637.      string describing the problem.
  3638.  
  3639. Example
  3640.      The following loads a general 256 colour palette onto the image:
  3641.  
  3642.           PALETTE_LOAD FILE "Palettes/General256.palette"
  3643.  
  3644.      The following loads a general 16 colour palette with
  3645.      Floyd-Steinberg dithering onto the image:
  3646.  
  3647.           PALETTE_LOAD FILE "Palettes/General16.palette" DITHER "FS"
  3648.  
  3649. Known bugs
  3650.      None.
  3651.  
  3652. PALETTE_SAVE
  3653. ------------
  3654.  
  3655. Command
  3656.      PALETTE_SAVE
  3657.  
  3658. Parameters template
  3659.      FILE/A
  3660.  
  3661. Return template
  3662.      None.
  3663.  
  3664. Description
  3665.      Saves the palette of the current image out to disk. The image must
  3666.      be colour-mapped for this operation to work.
  3667.  
  3668. Parameters
  3669.     FILE/A
  3670.           The filename of the palette file to save.
  3671.  
  3672. Returns
  3673.      Nothing.
  3674.  
  3675. Errors
  3676.      rc = 0 if the operation was successful.
  3677.  
  3678.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3679.      string describing the problem.
  3680.  
  3681. Example
  3682.      The following saves the current image's palette to the ram disk:
  3683.  
  3684.           PALETTE_SAVE FILE "ram:Image.palette"
  3685.  
  3686.      The following only saves out the palette of the current image if
  3687.      the current image is colour-mapped:
  3688.  
  3689.           IMAGEINFO_GET STEM IMAGEINFO.
  3690.           
  3691.           if IMAGEINFO.DEPTH ~= 24 then do
  3692.              PALETTE_SAVE FILE "Image.palette"
  3693.              end
  3694.  
  3695. Known bugs
  3696.      None.
  3697.  
  3698. PALETTE_SET
  3699. -----------
  3700.  
  3701. Command
  3702.      PALETTE_SET
  3703.  
  3704. Parameters template
  3705.      PALETTE/N/M/A, REMAP/S
  3706.  
  3707. Return template
  3708.      None.
  3709.  
  3710. Description
  3711.      Forces the array of numbers as the current palette for the image.
  3712.      The depth of the resultant image is taken from the number of
  3713.      entries in the array. This is useful for adding colours into the
  3714.      current image's palette.
  3715.  
  3716. Parameters
  3717.     PALETTE/N/M/A
  3718.           The array of numbers that will build the palette. The total
  3719.           number of elements in the array determines the number of
  3720.           palette entries and the depth of the resultant images. The
  3721.           entries in the array are arranged colour0_red, colour0_green,
  3722.           colour0_blue, colour1_red etc... The values of the red, green
  3723.           and blue values are 0 to 255.
  3724.  
  3725.     REMAP
  3726.           By default, the given palette is forced up on the current
  3727.           image. By specifying the REMAP switch, the image can be
  3728.           remapped to best fit the new palette.
  3729.  
  3730. Returns
  3731.      Nothing.
  3732.  
  3733. Errors
  3734.      rc = 0 if the operation was successful.
  3735.  
  3736.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3737.      string describing the problem.
  3738.  
  3739. Example
  3740.      The following sets the current image to black and white, remapping
  3741.      as best as possible:
  3742.  
  3743.           PALETTE_SET PALETTE "0 0 0 255 255 255" REMAP
  3744.  
  3745.      The following reduces the number of colours in the image to 29,
  3746.      then sets the top 3 colours to be red, white and blue. This is an
  3747.      example of how the returned stem value can be turned into a list
  3748.      of parameters for another command:
  3749.  
  3750.           /* Reduce the number of colours */
  3751.           
  3752.           COLOURS NUMCOLOURS 29 DITHER "FS"
  3753.           
  3754.           /* Get the current palette */
  3755.           
  3756.           PALETTE_GET STEM OLDPALETTE.
  3757.           
  3758.           /* Set the top 3 colours to red, white and blue */
  3759.           
  3760.           OLDPALETTE.PALETTE.87 = 255  /* Red */
  3761.           OLDPALETTE.PALETTE.88 = 0
  3762.           OLDPALETTE.PALETTE.89 = 0
  3763.           
  3764.           OLDPALETTE.PALETTE.90 = 255  /* White */
  3765.           OLDPALETTE.PALETTE.91 = 255
  3766.           OLDPALETTE.PALETTE.92 = 255
  3767.           
  3768.           OLDPALETTE.PALETTE.93 = 0    /* Blue */
  3769.           OLDPALETTE.PALETTE.94 = 0
  3770.           OLDPALETTE.PALETTE.95 = 255
  3771.           
  3772.           /* Convert the stem to a parameter list */
  3773.           
  3774.           NEWPALETTE = ''
  3775.           
  3776.           do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  3777.              NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  3778.              end
  3779.           
  3780.           /* Force the new palette onto the image */
  3781.           
  3782.           PALETTE_SET PALETTE NEWPALETTE REMAP
  3783.  
  3784. Known bugs
  3785.      None.
  3786.  
  3787. PALETTE_SORT
  3788. ------------
  3789.  
  3790. Command
  3791.      PALETTE_SORT
  3792.  
  3793. Parameters template
  3794.      FROM/N, TO/N, LIGHTTODARK/S
  3795.  
  3796. Return template
  3797.      None.
  3798.  
  3799. Description
  3800.      Sorts the colours in the palette into ascending / descending order
  3801.      of brightness. The whole palette can be sorted or a selected range.
  3802.  
  3803.      The colours in the palette are numbered from zero, so a 32 colour
  3804.      image would have palette entries 0 to 31 inclusive.
  3805.  
  3806.      The image in automatically remapped to the new palette after the
  3807.      operation.
  3808.  
  3809. Parameters
  3810.     FROM/N
  3811.           The first colour in the palette to sort from. By default this
  3812.           is zero.
  3813.  
  3814.     TO/N
  3815.           The last colour in the palette to sort to. By default this is
  3816.           the last colour in the image's palette.
  3817.  
  3818.     LIGHTTODARK/S
  3819.           By default the palette is sorted from dark to light. This
  3820.           option allows the palette to be sorted light to dark.
  3821.  
  3822. Returns
  3823.      Nothing.
  3824.  
  3825. Errors
  3826.      rc = 0 if the operation was successful.
  3827.  
  3828.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3829.      string describing the problem.
  3830.  
  3831. Example
  3832.      The following sorts the colours in the image's palette dark
  3833.      through to light:
  3834.  
  3835.           PALETTE_SORT
  3836.  
  3837.      The following sorts the lower 32 colours in a 64 colour image from
  3838.      light to dark:
  3839.  
  3840.           PALETTE_SORT FROM 0 TO 31 LIGHTTODARK
  3841.  
  3842. Known bugs
  3843.      None.
  3844.  
  3845. PASTE
  3846. -----
  3847.  
  3848. Command
  3849.      PASTE
  3850.  
  3851. Parameters template
  3852.      FORCE/S
  3853.  
  3854. Return template
  3855.      None.
  3856.  
  3857. Description
  3858.      Pastes the image in the clipboard into the program.
  3859.  
  3860. Parameters
  3861.     FORCE/S
  3862.           By default the user is warned if the the current project is
  3863.           unsaved and they are about to overwrite it. This parameter
  3864.           will not warn the user and overwrite the project regardless.
  3865.  
  3866. Returns
  3867.      Nothing.
  3868.  
  3869. Errors
  3870.      rc = 0 if the operation was successful.
  3871.  
  3872.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3873.      string describing the problem.
  3874.  
  3875. Example
  3876.      The following pastes the image in the clipboard, warning the user
  3877.      if the current project isn't saved:
  3878.  
  3879.           PASTE
  3880.  
  3881.      The following pastes the image in the clipboard with no warning to
  3882.      the user if the current project isn't saved:
  3883.  
  3884.           PASTE FORCE
  3885.  
  3886. Known bugs
  3887.      With v2.0.x, if the user presses `Abort' when the file is being
  3888.      pasted, an error message is not returned and so the ARexx script
  3889.      assumes the file pasted OK. This will be fixed when the loaders /
  3890.      savers become external modules.
  3891.  
  3892. PREF_GET
  3893. --------
  3894.  
  3895. Command
  3896.      PREF_GET
  3897.  
  3898. Parameters template
  3899.      NAME/A
  3900.  
  3901. Return template
  3902.      VALUE
  3903.  
  3904. Description
  3905.      Allows the user to read any of the preferences values currently in
  3906.      use by the program.
  3907.  
  3908.      See Prefs, for a full description of the available preference
  3909.      values.
  3910.  
  3911. Parameters
  3912.     NAME/A
  3913.           The name of the preference whose value should be returned.
  3914.           The tooltype name is given here, so to read the virtual
  3915.           memory pagesize for example, NAME would be PAGESIZE.
  3916.  
  3917.           If the preference name is not found, an error is returned.
  3918.  
  3919. Returns
  3920.     VALUE
  3921.           The value of the preference. If the preference is a string,
  3922.           VALUE is the string value, if the preference is numeric,
  3923.           VALUE is the number value and if the preference is boolean,
  3924.           VALUE is either the value 1 for a positive setting ("YES" or
  3925.           "ON") or 0 for a negative setting ("NO" or "OFF").
  3926.  
  3927. Errors
  3928.      rc = 0 if the operation was successful.
  3929.  
  3930.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3931.      string describing the problem.
  3932.  
  3933. Example
  3934.      The following finds the current virtual memory pagesize:
  3935.  
  3936.           PREF_GET NAME "PAGESIZE"
  3937.           
  3938.           say 'The pagesize is 'RESULT * 1024' bytes'
  3939.  
  3940.      The following detects whether the preview dithering is being used:
  3941.  
  3942.           PREF_GET NAME "PREVIEWDITHER"
  3943.           
  3944.           if RESULT == 1 then do
  3945.              say 'Preview dithering is ON'
  3946.              end
  3947.           else do
  3948.              say 'Preview dithering is OFF'
  3949.              end
  3950.  
  3951. Known bugs
  3952.      None.
  3953.  
  3954. PREF_SET
  3955. --------
  3956.  
  3957. Command
  3958.      PREF_SET
  3959.  
  3960. Parameters template
  3961.      NAME/A, VALUE/A
  3962.  
  3963. Return template
  3964.      None.
  3965.  
  3966. Description
  3967.      Allows the user to set any of the preferences values currently in
  3968.      use by the program. Changing some preference variables may have no
  3969.      effect until the next time the program is run.
  3970.  
  3971.      See Prefs, for a full description of the available preference
  3972.      values.
  3973.  
  3974. Parameters
  3975.     NAME/A
  3976.           The name of the preference whose value should be changed. The
  3977.           tooltype name is given here, so to set the virtual memory
  3978.           pagesize for example, NAME would be PAGESIZE.
  3979.  
  3980.           If the preference name is not found, an error is returned.
  3981.  
  3982.     VALUE/A
  3983.           The desired value of the preference. If the preference is a
  3984.           string, VALUE should be a string value, if the preference is
  3985.           numeric, VALUE should be a number value. If the preference is
  3986.           boolean, VALUE can be either the strings "YES" or "ON" to set
  3987.           a positive value, "NO" or "OFF" to set a negative value.
  3988.  
  3989. Returns
  3990.      Nothing.
  3991.  
  3992. Errors
  3993.      rc = 0 if the operation was successful.
  3994.  
  3995.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3996.      string describing the problem.
  3997.  
  3998. Example
  3999.      The following turns the preview redraw off:
  4000.  
  4001.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  4002.  
  4003.      The following sets the virtal memory pagesize to be 200K:
  4004.  
  4005.           PREF_SET NAME "PAGESIZE" VALUE 200
  4006.  
  4007. Known bugs
  4008.      None.
  4009.  
  4010. QUIT
  4011. ----
  4012.  
  4013. Command
  4014.      QUIT
  4015.  
  4016. Parameters template
  4017.      FORCE/S
  4018.  
  4019. Return template
  4020.      None.
  4021.  
  4022. Description
  4023.      Quits the program. By using the FORCE option, the program can be
  4024.      forced to quit without warning the user.
  4025.  
  4026.      The program cannot be quit by issuing the QUIT command from the
  4027.      command shell.
  4028.  
  4029. Parameters
  4030.     FORCE/S
  4031.           By default the user is warned if the program is about to quit
  4032.           and the current project remains unsaved. Specifying this
  4033.           parameter will force the program to quit regardless.
  4034.  
  4035. Returns
  4036.      Absolutely nothing.
  4037.  
  4038. Errors
  4039.      rc = 0 if the operation was successful.
  4040.  
  4041.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4042.      string describing the problem.
  4043.  
  4044. Example
  4045.      The following quits the program, warning the user if the current
  4046.      project is unsaved:
  4047.  
  4048.           QUIT
  4049.  
  4050.      The following quits the program regardless of the status of the
  4051.      current project:
  4052.  
  4053.           QUIT FORCE
  4054.  
  4055. Known bugs
  4056.      None.
  4057.  
  4058. REDO
  4059. ----
  4060.  
  4061. Command
  4062.      REDO
  4063.  
  4064. Parameters template
  4065.      None.
  4066.  
  4067. Return template
  4068.      None.
  4069.  
  4070. Description
  4071.      Re-does the last UNDO operation (see ARexx_UNDO).
  4072.  
  4073. Parameters
  4074.      None.
  4075.  
  4076. Returns
  4077.      Nothing.
  4078.  
  4079. Errors
  4080.      rc = 0 if the operation was successful.
  4081.  
  4082.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4083.      string describing the problem.
  4084.  
  4085. Example
  4086.      The following re-does the last UNDO operation:
  4087.  
  4088.           REDO
  4089.  
  4090. Known bugs
  4091.      None.
  4092.  
  4093. REDRAW
  4094. ------
  4095.  
  4096. Command
  4097.      REDRAW
  4098.  
  4099. Parameters template
  4100.      None.
  4101.  
  4102. Return template
  4103.      None.
  4104.  
  4105. Description
  4106.      Forces a redraw of the image in the preview window. This is not
  4107.      normally needed, as all the redrawing is done automatically
  4108.      however it could be used if the PREVIEWREDRAW preference is
  4109.      changed within a script.
  4110.  
  4111. Parameters
  4112.      None.
  4113.  
  4114. Returns
  4115.      Nothing.
  4116.  
  4117. Errors
  4118.      rc = 0 if the operation was successful.
  4119.  
  4120.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4121.      string describing the problem.
  4122.  
  4123. Example
  4124.      The following forces a redraw of the image in the preview window:
  4125.  
  4126.           REDRAW
  4127.  
  4128.      The following forces a redraw of the image after the preview
  4129.      redraw has been turned off with the PREVIEWREDRAW preference:
  4130.  
  4131.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  4132.           
  4133.           REDRAW
  4134.  
  4135. Known bugs
  4136.      None.
  4137.  
  4138. REGION_CLEAR
  4139. ------------
  4140.  
  4141. Command
  4142.      REGION_CLEAR
  4143.  
  4144. Parameters template
  4145.      None.
  4146.  
  4147. Return template
  4148.      None.
  4149.  
  4150. Description
  4151.      Removes the currently selected region, if one exists. No error is
  4152.      given if a region doesn't exist.
  4153.  
  4154. Parameters
  4155.      None.
  4156.  
  4157. Returns
  4158.      Nothing.
  4159.  
  4160. Errors
  4161.      rc = 0 if the operation was successful.
  4162.  
  4163.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4164.      string describing the problem.
  4165.  
  4166. Example
  4167.      The following clears the currently selected region:
  4168.  
  4169.           REGION_CLEAR
  4170.  
  4171.      The following checks that a region is selected before trying to
  4172.      clear it:
  4173.  
  4174.           REGION_GET STEM REGIONINFO.
  4175.           
  4176.           if REGIONINFO.MINX ~= -1 then do
  4177.              REGION_CLEAR
  4178.              end
  4179.  
  4180. Known bugs
  4181.      None.
  4182.  
  4183. REGION_GET
  4184. ----------
  4185.  
  4186. Command
  4187.      REGION_GET
  4188.  
  4189. Parameters template
  4190.      None.
  4191.  
  4192. Return template
  4193.      MINX/N, MINY/N, MAXX/N, MAXY/N, WIDTH/N, HEIGHT/N
  4194.  
  4195. Description
  4196.      Gets the current region dimensions from the image. If no region is
  4197.      selected, -1 is returned in all the fields.
  4198.  
  4199.      The values returned are the values of all the pixels inside the
  4200.      selected region. For example, if the top left pixel only of the
  4201.      image was selected the following values would be returned:
  4202.  
  4203.           MINX = 0
  4204.           MINY = 0
  4205.           MAXX = 0
  4206.           MAXY = 0
  4207.           WIDTH = 1
  4208.           HEIGHT = 1
  4209.  
  4210. Parameters
  4211.      None.
  4212.  
  4213. Returns
  4214.     MINX/N
  4215.           The left-most pixel included in the selected region, -1 if no
  4216.           region is selected.
  4217.  
  4218.     MINY/N
  4219.           The top-most pixel included in the selected region, -1 if no
  4220.           region is selected.
  4221.  
  4222.     MAXX/N
  4223.           The right-most pixel included in the selected region, -1 if
  4224.           no region is selected.
  4225.  
  4226.     MAXY/N
  4227.           The bottom-most pixel included in the selected region, -1 if
  4228.           no region is selected.
  4229.  
  4230.     WIDTH/N
  4231.           The width of the selected region, -1 if no region is selected.
  4232.  
  4233.     HEIGHT/N
  4234.           The height of the selected region, -1 if no region is
  4235.           selected.
  4236.  
  4237. Errors
  4238.      rc = 0 if the operation was successful.
  4239.  
  4240.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4241.      string describing the problem.
  4242.  
  4243. Example
  4244.      The following gets the currently selected region and returns the
  4245.      value in the REGIONINFO. stem:
  4246.  
  4247.           REGION_GET STEM REGIONINFO.
  4248.  
  4249.      The following checks that a region is selected, popping up an
  4250.      message requester:
  4251.  
  4252.           REGION_GET STEM REGIONINFO.
  4253.           
  4254.           if REGIONINFO.MINX ~= -1 then do
  4255.              REQUEST_MESSAGE TEXT '"Width,Height = '||REGIONINFO.WIDTH||,
  4256.                 ','||REGIONINFO.HEIGHT||'"'
  4257.              end
  4258.           else do
  4259.              REQUEST_MESSAGE TEXT '"No region selected"'
  4260.              end
  4261.  
  4262. Known bugs
  4263.      None.
  4264.  
  4265. REGION_SET
  4266. ----------
  4267.  
  4268. Command
  4269.      REGION_SET
  4270.  
  4271. Parameters template
  4272.      None.
  4273.  
  4274. Return template
  4275.      XSTART/N, YSTART/N, TO/S, XEND/N, YEND/N
  4276.  
  4277. Description
  4278.      Sets the selected region of the image. The region can either be
  4279.      specifed by the co-ordinates of its corners or by its width,
  4280.      height and position.
  4281.  
  4282. Parameters
  4283.     XSTART/N
  4284.           The left-most co-ordinate included in the region.
  4285.  
  4286.     YSTART/N
  4287.           The top-most co-ordinate included in the region.
  4288.  
  4289.     TO/S
  4290.           By default the region is specified by the co-ordinates of its
  4291.           top-left corners and its width and height. By using the TO
  4292.           parameter, the region can be specified with the lower-bottom
  4293.           co-ordinate of the region.
  4294.  
  4295.     XEND/N
  4296.           The width of the region. If the TO parameter is used, this
  4297.           value is used to specify the right-most pixel included by the
  4298.           region.
  4299.  
  4300.     YEND/n
  4301.           The height of the region. If the TO parameter is used, this
  4302.           value is used to specify the bottom-most pixel included by
  4303.           the region.
  4304.  
  4305. Returns
  4306.      Nothing.
  4307.  
  4308. Errors
  4309.      rc = 0 if the operation was successful.
  4310.  
  4311.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4312.      string describing the problem.
  4313.  
  4314. Example
  4315.      The following sets the selected region to have it's top-left
  4316.      corner at (10,20) with a width of 30 and height of 40:
  4317.  
  4318.           REGION_SET 10 20 30 40
  4319.  
  4320.      The following sets the selected region to have it's top-left
  4321.      corner at (50,60) and its bottom-right corner to include (70,80):
  4322.  
  4323.           REGION_SET 50 60 TO 70 80
  4324.  
  4325. Known bugs
  4326.      None.
  4327.  
  4328. REQUEST_DIR
  4329. -----------
  4330.  
  4331. Command
  4332.      REQUEST_DIR
  4333.  
  4334. Parameters template
  4335.      PATHPART, TITLE
  4336.  
  4337. Return template
  4338.      PATHPART
  4339.  
  4340. Description
  4341.      Opens a directory requester, allowing the user to choose a
  4342.      directory name.
  4343.  
  4344.      The other ImageStudio windows are automatically blocked when the
  4345.      requester is opened and unblocked when the requester is closed.
  4346.  
  4347.      In common with all ImageStudio requesters, if the user presses
  4348.      `Cancel', an error message is returned. For the script to trap
  4349.      this error, global error checking must be turned off. See Error
  4350.      checking, for more information.
  4351.  
  4352. Parameters
  4353.     PATHPART
  4354.           The default path name to put in the requester.
  4355.  
  4356.     TITLE
  4357.           The text for the title bar of the requester.
  4358.  
  4359. Returns
  4360.     PATHPART
  4361.           The selected path from the requester.
  4362.  
  4363. Errors
  4364.      rc = 0 if the operation was successful.
  4365.  
  4366.      rc = 10 if the operation failed for any reason or the user
  4367.      cancelled requester, rc2 will contain a string describing the
  4368.      problem.
  4369.  
  4370. Example
  4371.      The following puts up a directory requester, with the results
  4372.      being put in the DIRINFO. stem:
  4373.  
  4374.           REQUEST_DIR STEM DIRINFO.
  4375.  
  4376.      The following puts up a directory requester with a default
  4377.      directory of "T:", the result being printed in a message requester:
  4378.  
  4379.           REQUEST_DIR PATHPART "T:" STEM DIRINFO.
  4380.           
  4381.           REQUEST_MESSAGE TEXT '"You chose '||DIRINFO.PATHPART||'"'
  4382.  
  4383. Known bugs
  4384.      None.
  4385.  
  4386. REQUEST_FILE
  4387. ------------
  4388.  
  4389. Command
  4390.      REQUEST_FILE
  4391.  
  4392. Parameters template
  4393.      PATHPART, FILEPART, PATTERN, TITLE
  4394.  
  4395. Return template
  4396.      FILE
  4397.  
  4398. Description
  4399.      Opens a file requester, allowing the user to choose a filename.
  4400.  
  4401.      The other ImageStudio windows are automatically blocked when the
  4402.      requester is opened and unblocked when the requester is closed.
  4403.  
  4404.      In common with all ImageStudio requesters, if the user presses
  4405.      `Cancel', an error message is returned. For the script to trap
  4406.      this error, global error checking must be turned off. See Error
  4407.      checking, for more information.
  4408.  
  4409. Parameters
  4410.     PATHPART
  4411.           The default path name to put in the requester.
  4412.  
  4413.     FILEPART
  4414.           The default filename to put in the requester.
  4415.  
  4416.     PATTERN
  4417.           An AmigaDos pattern matching pattern, will only show files in
  4418.           the requester which match the given pattern. By default, all
  4419.           files are shown.
  4420.  
  4421.     TITLE
  4422.           The text for the title bar of the requester.
  4423.  
  4424. Returns
  4425.     FILE
  4426.           The selected filename from the requester, the filename
  4427.           consists of both the FILEPART and PATHPART parts.
  4428.  
  4429. Errors
  4430.      rc = 0 if the operation was successful.
  4431.  
  4432.      rc = 10 if the operation failed for any reason or the user
  4433.      cancelled requester, rc2 will contain a string describing the
  4434.      problem.
  4435.  
  4436. Example
  4437.      The following puts up a file requester, with the results being put
  4438.      in the FILEINFO. stem:
  4439.  
  4440.           REQUEST_FILE STEM FILEINFO.
  4441.  
  4442.      The following puts up a file requester with the result being
  4443.      printed in a message requester. The default file is
  4444.      "Pics/HappyFace240x250.bmp":
  4445.  
  4446.           REQUEST_FILE PATHPART "Pics" FILEPART "HappyFace240x250.bmp",
  4447.              STEM FILEINFO.
  4448.           
  4449.           REQUEST_MESSAGE TEXT '"You chose '||FILEINFO.FILE||'"'
  4450.  
  4451.      The following will only show files with a ".ilbm" file extension:
  4452.  
  4453.           REQUEST_FILE PATTERN "#?.ilbm"
  4454.  
  4455. Known bugs
  4456.      None.
  4457.  
  4458. REQUEST_LIST
  4459. ------------
  4460.  
  4461. Command
  4462.      REQUEST_LIST
  4463.  
  4464. Parameters template
  4465.      STRINGS/M/A, TITLE
  4466.  
  4467. Return template
  4468.      NUMBER/N, STRING
  4469.  
  4470. Description
  4471.      Opens a requester containing a list of options for the user to
  4472.      choose.
  4473.  
  4474.      The other ImageStudio windows are automatically blocked when the
  4475.      requester is opened and unblocked when the requester is closed.
  4476.  
  4477.      In common with all ImageStudio requesters, if the user presses
  4478.      `Cancel', an error message is returned. For the script to trap
  4479.      this error, global error checking must be turned off. See Error
  4480.      checking, for more information.
  4481.  
  4482. Parameters
  4483.     STRINGS/M/A
  4484.           The a list of string options for the user to choose.
  4485.  
  4486.     TITLE
  4487.           The text for the title bar of the requester.
  4488.  
  4489. Returns
  4490.     NUMBER/N
  4491.           The number in the list of the selected string. The strings
  4492.           are numbered from zero, so selecting the first choice in the
  4493.           list would set NUMBER to 0.
  4494.  
  4495.     STRING
  4496.           The selected string.
  4497.  
  4498. Errors
  4499.      rc = 0 if the operation was successful.
  4500.  
  4501.      rc = 10 if the operation failed for any reason, or the user
  4502.      cancelled requester, or no choice was made. rc2 will contain a
  4503.      string describing the problem.
  4504.  
  4505. Example
  4506.      The following puts up a list requester, with the results being put
  4507.      in the LISTINFO. stem:
  4508.  
  4509.           REQUEST_LIST STRINGS "IFF-ILBM" "PCX" "BMP" STEM LISTINFO.
  4510.  
  4511.      The following puts up a list requester, the result being printed
  4512.      in a message requester:
  4513.  
  4514.           REQUEST_LIST STRINGS "First" "Second" "Third" STEM LISTINFO.
  4515.           
  4516.           REQUEST_MESSAGE TEXT '"You chose '||LISTINFO.STRING||','||,
  4517.              ' option '||LISTINFO.NUMBER'"'
  4518.  
  4519. Known bugs
  4520.      None.
  4521.  
  4522. REQUEST_MESSAGE
  4523. ---------------
  4524.  
  4525. Command
  4526.      REQUEST_MESSAGE
  4527.  
  4528. Parameters template
  4529.      TEXT/A, BUTTONTEXT, AUTOCANCEL/S, TITLE
  4530.  
  4531. Return template
  4532.      NUMBER/N
  4533.  
  4534. Description
  4535.      Opens a general purpose message requester. Simple messages can be
  4536.      presented to the user for them to "OK" them. OK / Cancel
  4537.      requesters can be built with this requester, as well a complex
  4538.      multiple choice requesters.
  4539.  
  4540.      When designing requesters, it is worth remembering the following
  4541.      rules:
  4542.  
  4543.        1. The "Negative" response should be placed on the far
  4544.           right-hand button. For example, the `Cancel' button should be
  4545.           placed here.
  4546.  
  4547.        2. The "Positive" response should be placed on the far left-hand
  4548.           button. For example, the `OK' button should be placed here.
  4549.  
  4550.        3. Try to word your requesters to keep the positive and negative
  4551.           text as "OK" and "Cancel". Using options like "Go to it" and
  4552.           "Stop right here" doesn't make for a very intuitive interface.
  4553.  
  4554.        4. Keep the request text short. The user shouldn't have to read
  4555.           a screen full of text to find out what to do next.
  4556.  
  4557.        5. You should *NEVER* swap the "OK" and "Cancel" buttons around.
  4558.  
  4559.        6. The last point is *VERY* important.
  4560.  
  4561.      The other ImageStudio windows are automatically blocked when the
  4562.      requester is opened and unblocked when the requester is closed.
  4563.  
  4564.      If the AUTOCANCEL option is used and the user presses `Cancel', an
  4565.      error message is returned. For the script to trap this error,
  4566.      global error checking must be turned off. See Error checking, for
  4567.      more information.
  4568.  
  4569. Parameters
  4570.     TEXT/A
  4571.           The text to put into the requester. The text may contain
  4572.           multiple lines by including the `\n' characters in the string
  4573.           (see examples below).
  4574.  
  4575.     BUTTONTEXT
  4576.           The text for the buttons of the requester. The different
  4577.           buttons are seperated with a `|' character (i.e. BUTTONTEXT
  4578.           "OK|Cancel"). By default, only an "OK" button is placed in
  4579.           the requester.
  4580.  
  4581.     AUTOCANCEL/S
  4582.           By default REQUEST_MESSAGE simply returns the number of the
  4583.           button that the user selected. If the requester is of the OK
  4584.           / Cancel variety, specifying the AUTOCANCEL switch allows the
  4585.           requester to stop the script should the user press `Cancel'.
  4586.  
  4587.     TITLE
  4588.           The text for the title bar of the requester.
  4589.  
  4590. Returns
  4591.     NUMBER
  4592.           The number of the selected button. If the requester has one
  4593.           button, NUMBER is set to 0. For more that one button, the
  4594.           right-most button sets NUMBER to 0, with the buttons being
  4595.           numbered from 1 upwards working left to right. For example,
  4596.           with a BUTTONTEXT of "OK|Save first|Cancel", "OK" would
  4597.           return 1, "Save first" would return 2 and "Cancel" would
  4598.           return 0.
  4599.  
  4600. Errors
  4601.      rc = 0 if the operation was successful.
  4602.  
  4603.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4604.      string describing the problem. rc will also be set to 10 if the
  4605.      AUTOCANCEL option is used and the user selects `Cancel'.
  4606.  
  4607. Example
  4608.      The following puts up a message requester:
  4609.  
  4610.           REQUEST_MESSAGE TEXT '"Operation finished"'
  4611.  
  4612.      The following puts up a OK / Cancel requester, stopping the script
  4613.      if the user selects `Cancel':
  4614.  
  4615.           REQUEST_MESSAGE TEXT '"Continue ?"' BUTTONTEXT "OK|Cancel",
  4616.              AUTOCANCEL
  4617.  
  4618.      The following shows a multiple choice requester, followed by a
  4619.      requester showing which option was chosen:
  4620.  
  4621.           REQUEST_MESSAGE TEXT '"Choose an option..."',
  4622.              BUTTONTEXT "First|Second|Third"
  4623.           
  4624.           REQUEST_MESSAGE TEXT '"You chose option '||RESULT||'"'
  4625.  
  4626.      The following shows a message requester with multiple lines of
  4627.      text using the `\n' characters:
  4628.  
  4629.           REQUEST_MESSAGE TEXT '"Top line\nMiddle line\nBottom line"'
  4630.  
  4631. Known bugs
  4632.      None.
  4633.  
  4634. REQUEST_MULTIFILE
  4635. -----------------
  4636.  
  4637. Command
  4638.      REQUEST_MULTIFILE
  4639.  
  4640. Parameters template
  4641.      PATHPART, FILEPART, PATTERN, TITLE
  4642.  
  4643. Return template
  4644.      FILES/M
  4645.  
  4646. Description
  4647.      Opens a file requester, allowing the user to choose multiple
  4648.      filenames.
  4649.  
  4650.      The other ImageStudio windows are automatically blocked when the
  4651.      requester is opened and unblocked when the requester is closed.
  4652.  
  4653.      In common with all ImageStudio requesters, if the user presses
  4654.      `Cancel', an error message is returned. For the script to trap
  4655.      this error, global error checking must be turned off. See Error
  4656.      checking, for more information.
  4657.  
  4658. Parameters
  4659.     PATHPART
  4660.           The default path name to put in the requester.
  4661.  
  4662.     FILEPART
  4663.           The default filename to put in the requester.
  4664.  
  4665.     PATTERN
  4666.           An AmigaDos pattern matching pattern, will only show files in
  4667.           the requester which match the given pattern. By default, all
  4668.           files are shown.
  4669.  
  4670.     TITLE
  4671.           The text for the title bar of the requester.
  4672.  
  4673. Returns
  4674.     FILES/M
  4675.           The selected filenames from the requester, the filenames
  4676.           consists of both the FILEPART and PATHPART parts.
  4677.  
  4678. Errors
  4679.      rc = 0 if the operation was successful.
  4680.  
  4681.      rc = 10 if the operation failed for any reason or the user
  4682.      cancelled requester, rc2 will contain a string describing the
  4683.      problem. rc will also be set to 10 if no files are chosen.
  4684.  
  4685. Example
  4686.      The following puts up a multifile requester, with the results
  4687.      being put in the MULTIFILEINFO. stem:
  4688.  
  4689.           REQUEST_MULTIFILE STEM MULTIFILEINFO.
  4690.  
  4691.      The following puts up a multifile requester, with a default path
  4692.      of "Pics" and loops through all the selected files by putting them
  4693.      in message requesters:
  4694.  
  4695.           REQUEST_MULTIFILE PATHPART "Pics" STEM MULTIFILENFO.
  4696.           
  4697.           do l = 0 to (MULTIFILENFO.FILES.COUNT - 1)
  4698.              REQUEST_MESSAGE TEXT '"'MULTIFILENFO.FILES.l'"',
  4699.                 BUTTONTEXT '"More...|Cancel"' AUTOCANCEL
  4700.              end
  4701.  
  4702. Known bugs
  4703.      If no file is chosen, the command returns a "user cancelled"
  4704.      error. This is normal.
  4705.  
  4706. REQUEST_MULTIVALUE
  4707. ------------------
  4708.  
  4709. Command
  4710.      REQUEST_MULTIVALUE
  4711.  
  4712. Parameters template
  4713.      STRINGS/M, TITLE
  4714.  
  4715. Return template
  4716.      STRINGS/M
  4717.  
  4718. Description
  4719.      Opens a multivalue requester, allowing the user to change any of
  4720.      the listed values.
  4721.  
  4722.      The other ImageStudio windows are automatically blocked when the
  4723.      requester is opened and unblocked when the requester is closed.
  4724.  
  4725.      In common with all ImageStudio requesters, if the user presses
  4726.      `Cancel', an error message is returned. For the script to trap
  4727.      this error, global error checking must be turned off. See Error
  4728.      checking, for more information.
  4729.  
  4730. Parameters
  4731.     STRINGS/M
  4732.           A list of strings with the values to display in the
  4733.           requester. The strings are grouped in pairs, the first string
  4734.           of the pair being the text for the requester, the second
  4735.           being the default value for that string.
  4736.  
  4737.           For example, the following would place width and height
  4738.           values in the requester, with default values of 640 and 480
  4739.           respectively:
  4740.  
  4741.                STRINGS "Width" "640" "Height" "480"
  4742.  
  4743.           If there isn't an even number of strings, an error is
  4744.           returned.
  4745.  
  4746.     TITLE
  4747.           The text for the title bar of the requester.
  4748.  
  4749. Returns
  4750.     STRINGS/M
  4751.           A list of strings with the values to display in the
  4752.           requester. The strings are grouped in pairs, the first string
  4753.           of the pair being the text for the requester, the second
  4754.           being the returned value for that string.
  4755.  
  4756. Errors
  4757.      rc = 0 if the operation was successful.
  4758.  
  4759.      rc = 10 if the operation failed for any reason or the user
  4760.      cancelled requester, rc2 will contain a string describing the
  4761.      problem. rc will also be set to 10 if no files are chosen.
  4762.  
  4763. Example
  4764.      The following puts up a multivalue requester, allowing the user to
  4765.      change the width, height and depth of an image. The result is put
  4766.      in the MULTIVALUEINFO. stem:
  4767.  
  4768.           REQUEST_MULTIVALUE "Width" "640" "Height" "480",
  4769.              STEM MULTIVALUEINFO.
  4770.  
  4771.      The following puts up a multivalue requester, allowing the user to
  4772.      change the name and depth of an image. The result is put displayed
  4773.      in a message requester and the values recycled until the user
  4774.      cancels the requesters:
  4775.  
  4776.           INSTRINGS = 'Name ImageName.bmp Depth 4'
  4777.           
  4778.           do forever
  4779.              REQUEST_MULTIVALUE STRINGS INSTRINGS STEM MULTIVALUEINFO.
  4780.           
  4781.              REQUEST_MESSAGE TEXT BUTTONTEXT "OK|Cancel" AUTOCANCEL,
  4782.                 TEXT '"Name: '||MULTIVALUEINFO.STRINGS.1||'\n'||,
  4783.                 'Depth : '||MULTIVALUEINFO.STRINGS.3||'"'
  4784.           
  4785.              /* Construct the new INSTRINGS */
  4786.           
  4787.              INSTRINGS = ''
  4788.           
  4789.              do l = 0 to (MULTIVALUEINFO.STRINGS.COUNT - 1)
  4790.                 INSTRINGS = INSTRINGS||' '||MULTIVALUEINFO.STRINGS.l
  4791.                 end
  4792.           
  4793.              end
  4794.  
  4795. Known bugs
  4796.      None.
  4797.  
  4798. REQUEST_SCREENMODE
  4799. ------------------
  4800.  
  4801. Command
  4802.      REQUEST_SCREENMODE
  4803.  
  4804. Parameters template
  4805.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N,
  4806.      GADS_ENABLED/S, MAXDEPTH/N, MINWIDTH/N, MINHEIGHT/N
  4807.  
  4808. Return template
  4809.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N, TEXT
  4810.  
  4811. Description
  4812.      Opens a screenmode requester, allowing the user to select an Amiga
  4813.      screenmode. By specifying the GADS_ENABLED, the user may also
  4814.      select the width, height, depth and overscan values for the
  4815.      screenmode.
  4816.  
  4817.      The other ImageStudio windows are automatically blocked when the
  4818.      requester is opened and unblocked when the requester is closed.
  4819.  
  4820.      In common with all ImageStudio requesters, if the user presses
  4821.      `Cancel', an error message is returned. For the script to trap
  4822.      this error, global error checking must be turned off. See Error
  4823.      checking, for more information.
  4824.  
  4825. Parameters
  4826.     MODEID/N
  4827.           The default screenmode ID for the requester which will be
  4828.           selected in the requester. By default, LORES is selected.
  4829.  
  4830.     WIDTH/N
  4831.           The default screen width value to put in the requester. By
  4832.           default, the default width of the selected screenmode is used.
  4833.  
  4834.     HEIGHT/N
  4835.           The default screen height value to put in the requester. By
  4836.           default, the default height of the selected screenmode is
  4837.           used.
  4838.  
  4839.     OVERSCAN/N
  4840.           The default overscan value to put in the requester. The
  4841.           following values are valid: 1 for text size, 2 for graphics
  4842.           size, 3 for extreme and 4 for maximum overscan. By default,
  4843.           text size is used.
  4844.  
  4845.     DEPTH/N
  4846.           The default depth value to put in the requester. By default,
  4847.           a depth of 2 is used.
  4848.  
  4849.     GADSENABLED/S
  4850.           By default the screenmode requester only allows the selecting
  4851.           of the screenmode. By using this switch, the user may also
  4852.           set the width, height, overscan and depth of the screenmode.
  4853.  
  4854.     MAXDEPTH/N
  4855.           The maximum depth allowed by the depth gadget. This value is
  4856.           only relevant to the internal screenmode requester.
  4857.  
  4858.     MINWIDTH/N
  4859.           The minimum allowable width of the screenmode.
  4860.  
  4861.     MINHEIGHT/N
  4862.           The minimum allowable height of the screenmode.
  4863.  
  4864. Returns
  4865.     MODEID/N
  4866.           The chosen screenmode ID.
  4867.  
  4868.     WIDTH/N
  4869.           The screen width chosen in the requester. This value is only
  4870.           set if the GADSENABLED switch is used.
  4871.  
  4872.     HEIGHT/N
  4873.           The screen height chosen in the requester. This value is only
  4874.           set if the GADSENABLED switch is used.
  4875.  
  4876.     OVERSCAN/N
  4877.           The overscan value chosen in the requester. The following
  4878.           values are returned: 1 for text size, 2 for graphics size, 3
  4879.           for extreme and 4 for maximum overscan. This value is only
  4880.           set if the GADSENABLED switch is used.
  4881.  
  4882.     DEPTH/N
  4883.           The depth value chosen in the requester. This value is only
  4884.           set if the GADSENABLED switch is used.
  4885.  
  4886.     TEXT
  4887.           A text description of the screenmode chosen.
  4888.  
  4889. Errors
  4890.      rc = 0 if the operation was successful.
  4891.  
  4892.      rc = 10 if the operation failed for any reason or the user
  4893.      cancelled requester, rc2 will contain a string describing the
  4894.      problem.
  4895.  
  4896. Example
  4897.      The following puts up a screenmode requester, the result is put in
  4898.      the SCREENMODEINFO. stem:
  4899.  
  4900.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  4901.  
  4902.      The following puts up a screenmode requester, complete with the
  4903.      width, height, depth and overscan gadgets. The chosen screenmode
  4904.      text is put in a message requester:
  4905.  
  4906.           REQUEST_SCREENMODE GADSENABLED STEM SCREENMODEINFO.
  4907.           
  4908.           REQUEST_MESSAGE TEXT '"'SCREENMODEINFO.TEXT'"'
  4909.  
  4910. Known bugs
  4911.        1. There are two screenmode requesters that can be used by
  4912.           ImageStudio. If ImageStudio is running on a Workbench2.1+
  4913.           Amiga the system ASL screenmode requester is used, if the
  4914.           Workbench2.04 is running then ImageStudio will use its
  4915.           internal screenmode requester (Workbench2.04 doesn't have an
  4916.           ASL screenmode requester). Because of the two different
  4917.           requesters and the complex way in which the Amiga deals with
  4918.           screenmodes, the operation of the two can be subtly different.
  4919.  
  4920.           The most noticeable difference is in the handling of the
  4921.           Amiga's built in screenmodes. A built in screenmode is
  4922.           something like "LoRes" or "HighRes Interlaced" as opposed to
  4923.           a disk based screenmode like "MULTISCAN:Productivity" or
  4924.           "SUPER72:High Res".
  4925.  
  4926.           If you choose a built in screenmode in the ASL screenmode
  4927.           requester, the requester will return the screenmode ID
  4928.           something like "PAL:LoRes". This means that the requester
  4929.           specifies that the screenmode is "LoRes" and the monitor to
  4930.           be used is "PAL" (or "NTSC" in America). If you choose a
  4931.           built in screenmode in the internal screenmode requester, the
  4932.           requester will return the screenmode ID something like
  4933.           "LoRes", i.e. *it doesn't specify the monitor to be used*.
  4934.  
  4935.           This is not usually a problem, but we feel that our
  4936.           screenmode requester may be more compatible with older
  4937.           software which doesn't understand the system of specifying
  4938.           the monitor in the screenmode.
  4939.  
  4940.           The matter is further complicated if you are using a monitor
  4941.           with mode promotion. Here, the internal screenmode
  4942.           requester's screenmodes are promoted to the new double
  4943.           scanning modes (e.g. "HighRes" gets promoted to
  4944.           "DBLPAL:HighRes"). The ASL screenmodes *aren't* promoted, as
  4945.           they already contain the desired monitor information in the
  4946.           screenmode. This feature is either "desirable" or
  4947.           "undesirable" depending on your point of view. If you've ever
  4948.           wondered why some screenmodes don't promote, this is why -
  4949.           they have been told to be specifically "PAL" or "NTSC" in
  4950.           their screenmode.
  4951.  
  4952.           If major problems are found in the differences between the
  4953.           internal and ASL screenmode requesters, we will endevour to
  4954.           alter the internal screenmode requester, but we think this is
  4955.           unlikely to cause any real problems.
  4956.  
  4957.        2. To be safe in selecting a mode, you should always click on it
  4958.           in the requester. When you pass a default screenmode, the
  4959.           mode highlighted in the requester may not be exactly the same
  4960.           as the default screenmode given - it may be an equivalent.
  4961.           Clicking on the screenmode ensures that it returns that
  4962.           mode's real ID.
  4963.  
  4964. REQUEST_STRING
  4965. --------------
  4966.  
  4967. Command
  4968.      REQUEST_STRING
  4969.  
  4970. Parameters template
  4971.      TEXT1, TEXT2, TEXT3, STRING, TITLE
  4972.  
  4973. Return template
  4974.      STRING
  4975.  
  4976. Description
  4977.      Opens a string requester, allowing the user to type in one line of
  4978.      text.
  4979.  
  4980.      If a filename or directory name is required, it is suggested that
  4981.      either a special file or directory requester is used instead.
  4982.  
  4983.      The other ImageStudio windows are automatically blocked when the
  4984.      requester is opened and unblocked when the requester is closed.
  4985.  
  4986.      In common with all ImageStudio requesters, if the user presses
  4987.      `Cancel', an error message is returned. For the script to trap
  4988.      this error, global error checking must be turned off. See Error
  4989.      checking, for more information.
  4990.  
  4991. Parameters
  4992.     TEXT1
  4993.           The top line of description text in the requester. The text
  4994.           will be left justified.
  4995.  
  4996.     TEXT2
  4997.           The middle line of description text in the requester. The
  4998.           text will be left justified.
  4999.  
  5000.     TEXT3
  5001.           The bottom line of description text in the requester. The
  5002.           text will be left justified.
  5003.  
  5004.     STRING
  5005.           The default string to be used in the requester.
  5006.  
  5007.     TITLE
  5008.           The text for the title bar of the requester.
  5009.  
  5010. Returns
  5011.     STRING
  5012.           The string in the requester.
  5013.  
  5014. Errors
  5015.      rc = 0 if the operation was successful.
  5016.  
  5017.      rc = 10 if the operation failed for any reason or the user
  5018.      cancelled requester, rc2 will contain a string describing the
  5019.      problem.
  5020.  
  5021. Example
  5022.      The following puts up a string requester, allowing the user to
  5023.      type in some text. The returned string is put in RESULT:
  5024.  
  5025.           REQUEST_STRING TEXT2 '"Enter some text"'
  5026.  
  5027.      The following puts up a string requester with a default string of
  5028.      "A raytraced image". The description text is displayed over 3
  5029.      lines:
  5030.  
  5031.           REQUEST_STRING TEXT1 '"Enter the"' TEXT2 '"desired name"',
  5032.              TEXT3 '"for the image"' STRING '"A raytraced image"'
  5033.  
  5034. Known bugs
  5035.      None.
  5036.  
  5037. RGB_TO_HSV
  5038. ----------
  5039.  
  5040. Command
  5041.      RGB_TO_HSV
  5042.  
  5043. Parameters template
  5044.      R/N/A, G/N/A, B/N/A
  5045.  
  5046. Return template
  5047.      H/N, S/N, V/N
  5048.  
  5049. Description
  5050.      Converts a RGB colour value into a HSV colour value.
  5051.  
  5052.      See Colour representations, for more details on RGB and HSV colour
  5053.      representations.
  5054.  
  5055. Parameters
  5056.     R/N/A
  5057.           The red value of the colour to convert. Valid values are 0 to
  5058.           255.
  5059.  
  5060.     G/N/A
  5061.           The green value of the colour to convert. Valid values are 0
  5062.           to 255.
  5063.  
  5064.     B/N/A
  5065.           The red of the colour to convert. Valid values are 0 to 255.
  5066.  
  5067. Returns
  5068.     H/N
  5069.           The hue componant value of the colour.
  5070.  
  5071.     S/N
  5072.           The saturation componant value of the colour.
  5073.  
  5074.     V/N
  5075.           The value componant of the colour.
  5076.  
  5077. Errors
  5078.      rc = 0 if the operation was successful.
  5079.  
  5080.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5081.      string describing the problem.
  5082.  
  5083. Example
  5084.      The following converts yellow from RGB to HSV representation,
  5085.      putting the result in RESULT:
  5086.  
  5087.           RGB_TO_HSV 255 255 0
  5088.  
  5089.      The following converts mid-grey from RGB to HSV representation,
  5090.      putting the result in the stem COLOUR.:
  5091.  
  5092.           RGB_TO_HSV 127 127 127 STEM COLOUR.
  5093.  
  5094. Known bugs
  5095.      None.
  5096.  
  5097. SAVE
  5098. ----
  5099.  
  5100. Command
  5101.      SAVE
  5102.  
  5103. Parameters template
  5104.      FILE/A, FORMAT, ARGS, FORCE/S
  5105.  
  5106. Return template
  5107.      None.
  5108.  
  5109. Description
  5110.      Saves the current image out to disk.
  5111.  
  5112.      See Save, for more details on saving images.
  5113.  
  5114. Parameters
  5115.     FILE/A
  5116.           The filename of the file to save.
  5117.  
  5118.     FORMAT
  5119.           The string containing the format of the file to save. By
  5120.           default, images are saved out as IFF-ILBM. See File formats,
  5121.           for more information on the available file formats.
  5122.  
  5123.     ARGS
  5124.           Any extra arguments that should be passed to the saver.
  5125.  
  5126.     FORCE/S
  5127.           By default the user will be warned if they are about to
  5128.           overwrite a file on the disk. Specifying this switch will
  5129.           stop such warnings.
  5130.  
  5131. Returns
  5132.      Nothing.
  5133.  
  5134. Errors
  5135.      rc = 0 if the operation was successful.
  5136.  
  5137.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5138.      string describing the problem.
  5139.  
  5140. Example
  5141.      The following saves the current image out as an IFF-ILBM:
  5142.  
  5143.           SAVE FILE "ram:Image.ilbm"
  5144.  
  5145.      The following saves the current image out as an IFF-ILBM, HAM6:
  5146.  
  5147.           SAVE FILE "ram:Image.ham6" ARGS '"SUBFORMAT HAM6"'
  5148.  
  5149.      The following saves out the current image as a JPEG, with a
  5150.      quality setting of 90:
  5151.  
  5152.           SAVE FILE "ram:Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 90"'
  5153.  
  5154. Known bugs
  5155.      None.
  5156.  
  5157. SCALE
  5158. -----
  5159.  
  5160. Command
  5161.      SCALE
  5162.  
  5163. Parameters template
  5164.      X/N, Y/N, PERCENT/S, METHOD
  5165.  
  5166. Return template
  5167.      None.
  5168.  
  5169. Description
  5170.      Scales the current image either up or down using different methods
  5171.      optimised for speed or quality.
  5172.  
  5173.      The user need not specify both X and Y scales, so scaling an image
  5174.      to only alter its width or height is possible.
  5175.  
  5176.      See Scale, for more details on scaling images.
  5177.  
  5178. Parameters
  5179.     X/N
  5180.           Amount to scale the image in X (width) direction. By default
  5181.           this value is an absolute value in pixels, but by specifying
  5182.           the PERCENT option this value can be read as a percentage of
  5183.           the image's current width.
  5184.  
  5185.     Y/N
  5186.           Amount to scale the image in Y (height) direction. By default
  5187.           this value is an absolute value in pixels, but by specifying
  5188.           the PERCENT option this value can be read as a percentage of
  5189.           the image's current height.
  5190.  
  5191.     PERCENT
  5192.           Reads the X and Y values as percentages of the image's
  5193.           current width and height.
  5194.  
  5195.     METHOD
  5196.           A string describing the method of scaling to use. By default,
  5197.           FAST is used but AVERAGE can provide higher quality scales on
  5198.           24bit images at the cost of computing time.
  5199.  
  5200. Returns
  5201.      Nothing.
  5202.  
  5203. Errors
  5204.      rc = 0 if the operation was successful.
  5205.  
  5206.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5207.      string describing the problem.
  5208.  
  5209. Example
  5210.      The following scales the image to 800 by 600 pixels:
  5211.  
  5212.           SCALE 800 600
  5213.  
  5214.      The following doubles the size of the image:
  5215.  
  5216.           SCALE 200 200 PERCENT
  5217.  
  5218.      The following halves the height of the image, using colour average
  5219.      scaling:
  5220.  
  5221.           SCALE Y 50 PERCENT METHOD "AVERAGE"
  5222.  
  5223. Known bugs
  5224.      None.
  5225.  
  5226. SCREEN_BACK
  5227. -----------
  5228.  
  5229. Command
  5230.      SCREEN_BACK
  5231.  
  5232. Parameters template
  5233.      None.
  5234.  
  5235. Return template
  5236.      None.
  5237.  
  5238. Description
  5239.      Moves the ImageStudio screen behind all other open screens.
  5240.  
  5241. Parameters
  5242.      None.
  5243.  
  5244. Returns
  5245.      Nothing.
  5246.  
  5247. Errors
  5248.      rc = 0 if the operation was successful.
  5249.  
  5250.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5251.      string describing the problem.
  5252.  
  5253. Example
  5254.      The following moves ImageStudio's screen behind all other open
  5255.      screens:
  5256.  
  5257.           SCREEN_BACK
  5258.  
  5259. Known bugs
  5260.      None.
  5261.  
  5262. SCREEN_FRONT
  5263. ------------
  5264.  
  5265. Command
  5266.      SCREEN_FRONT
  5267.  
  5268. Parameters template
  5269.      None.
  5270.  
  5271. Return template
  5272.      None.
  5273.  
  5274. Description
  5275.      Moves the ImageStudio screen in front of all other open screens.
  5276.  
  5277. Parameters
  5278.      None.
  5279.  
  5280. Returns
  5281.      Nothing.
  5282.  
  5283. Errors
  5284.      rc = 0 if the operation was successful.
  5285.  
  5286.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5287.      string describing the problem.
  5288.  
  5289. Example
  5290.      The following moves ImageStudio's screen in front of all other
  5291.      open screens:
  5292.  
  5293.           SCREEN_FRONT
  5294.  
  5295. Known bugs
  5296.      None.
  5297.  
  5298. SELECT_ALL
  5299. ----------
  5300.  
  5301. Command
  5302.      SELECT_ALL
  5303.  
  5304. Parameters template
  5305.      None.
  5306.  
  5307. Return template
  5308.      None.
  5309.  
  5310. Description
  5311.      Sets the current region to the whole of the image being displayed
  5312.      in the preview window.
  5313.  
  5314.      Note that this doesn't always select the whole image; if the user
  5315.      has zoomed in on a region, only this region will be selected. If
  5316.      you want to be sure of selecting the whole image, issue a
  5317.      FULL_IMAGE command first.
  5318.  
  5319. Parameters
  5320.      None.
  5321.  
  5322. Returns
  5323.      Nothing.
  5324.  
  5325. Errors
  5326.      rc = 0 if the operation was successful.
  5327.  
  5328.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5329.      string describing the problem.
  5330.  
  5331. Example
  5332.      The following selects the whole of the currently viewed image:
  5333.  
  5334.           SELECT_ALL
  5335.  
  5336. Known bugs
  5337.      None.
  5338.  
  5339. UNDO
  5340. ----
  5341.  
  5342. Command
  5343.      UNDO
  5344.  
  5345. Parameters template
  5346.      None.
  5347.  
  5348. Return template
  5349.      None.
  5350.  
  5351. Description
  5352.      Un-does the last operation (see ARexx_REDO).
  5353.  
  5354. Parameters
  5355.      None.
  5356.  
  5357. Returns
  5358.      Nothing.
  5359.  
  5360. Errors
  5361.      rc = 0 if the operation was successful.
  5362.  
  5363.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5364.      string describing the problem.
  5365.  
  5366. Example
  5367.      The following un-does the last operation:
  5368.  
  5369.           UNDO
  5370.  
  5371. Known bugs
  5372.      None.
  5373.  
  5374. VIEW
  5375. ----
  5376.  
  5377. Command
  5378.      VIEW
  5379.  
  5380. Parameters template
  5381.      EXTERNAL/S
  5382.  
  5383. Return template
  5384.      None.
  5385.  
  5386. Description
  5387.      Views the current image using either the internal or external
  5388.      viewer.
  5389.  
  5390. Parameters
  5391.     EXTERNAL/S
  5392.           By default the image is shown using the internal viewer,
  5393.           however by including this parameter the external viewer as
  5394.           defined in the preferences (see Prefs) will be used.
  5395.  
  5396. Returns
  5397.      Nothing.
  5398.  
  5399. Errors
  5400.      rc = 0 if the operation was successful.
  5401.  
  5402.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5403.      string describing the problem.
  5404.  
  5405. Example
  5406.      The following views the current image using the internal viewer:
  5407.  
  5408.           VIEW
  5409.  
  5410.      The following views the current image using the external viewer:
  5411.  
  5412.           VIEW EXTERNAL
  5413.  
  5414. Known bugs
  5415.      None.
  5416.  
  5417. ZOOM_IN
  5418. -------
  5419.  
  5420. Command
  5421.      ZOOM_IN
  5422.  
  5423. Parameters template
  5424.      None.
  5425.  
  5426. Return template
  5427.      None.
  5428.  
  5429. Description
  5430.      Zooms in to the currently selected region in the preview window.
  5431.  
  5432.      A region has to be selected in order for this command to work.
  5433.  
  5434. Parameters
  5435.      None.
  5436.  
  5437. Returns
  5438.      Nothing.
  5439.  
  5440. Errors
  5441.      rc = 0 if the operation was successful.
  5442.  
  5443.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5444.      string describing the problem.
  5445.  
  5446. Example
  5447.      The following zooms in to the currently selected region:
  5448.  
  5449.           ZOOM_IN
  5450.  
  5451. Known bugs
  5452.      None.
  5453.  
  5454. ZOOM_OUT
  5455. --------
  5456.  
  5457. Command
  5458.      ZOOM_OUT
  5459.  
  5460. Parameters template
  5461.      None.
  5462.  
  5463. Return template
  5464.      None.
  5465.  
  5466. Description
  5467.      Zooms out by a factor of 3 times in the preview window.
  5468.  
  5469. Parameters
  5470.      None.
  5471.  
  5472. Returns
  5473.      Nothing.
  5474.  
  5475. Errors
  5476.      rc = 0 if the operation was successful.
  5477.  
  5478.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5479.      string describing the problem.
  5480.  
  5481. Example
  5482.      The following zooms out by a factor of 3 times in the preview
  5483.      window:
  5484.  
  5485.           ZOOM_OUT
  5486.  
  5487. Known bugs
  5488.      None.
  5489.  
  5490. Reference
  5491. *********
  5492.  
  5493.    This chapter gives detailed explanations about various aspects of
  5494. the program.
  5495.  
  5496. File formats
  5497. ============
  5498.  
  5499.    Select the file format you wish to investigate.
  5500.  
  5501. IFF-ILBM
  5502. --------
  5503.  
  5504. Name
  5505.      IFF-ILBM
  5506.  
  5507. Load types
  5508.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5509.  
  5510.      Compressed and uncompressed.
  5511.  
  5512. Save types
  5513.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5514.  
  5515.      Compressed and uncompressed.
  5516.  
  5517. Description
  5518.      IFF-ILBM is the Amiga's native bitmap graphic file format.
  5519.  
  5520.      IFF-ILBM files are usually compressed using simple run-length
  5521.      compression, but they can be uncompressed for simplicity and speed.
  5522.  
  5523.      IFF-ILBM is ImageStudio's default save format.
  5524.  
  5525.      ImageStudio will load and save AGA images on a non-AGA machine.
  5526.  
  5527.      The original image's screenmode will be preserved, unless changed
  5528.      by the user (see View_screenmode).
  5529.  
  5530. ARexx OPEN command ARGS
  5531.      None.
  5532.  
  5533. ARexx SAVE command ARGS
  5534.      SUBFORMAT, DITHER, NOCOMPRESSION/S
  5535.  
  5536.     SUBFORMAT
  5537.           By default the image is saved out as the buffer, i.e. either
  5538.           a 2 to 256 colour colour-mapped image or as 24bit. By
  5539.           specifying the SUBFORMAT parameter, the user can select HAM6,
  5540.           HAM8 or EHB as extra save formats. The image will be
  5541.           converted into the chosen subformat before saving. The image
  5542.           in ImageStudio remains unchanged.
  5543.  
  5544.     DITHER
  5545.           If the SUBFORMAT option is used, DITHER can be set to FS to
  5546.           give Floyd-Steinberg dithering of the HAM6, HAM8 or EHB image.
  5547.  
  5548.     NOCOMPRESSION/S
  5549.           By default the IFF-ILBM image is compressed using simple
  5550.           run-length compression. Use this switch to save uncompressed
  5551.           data.
  5552.  
  5553. Example
  5554.      The following saves out the current image in the same format as
  5555.      the buffer:
  5556.  
  5557.           SAVE FILE "Image.ilbm"
  5558.  
  5559.      The following saves out the image as HAM6:
  5560.  
  5561.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT HAM6"'
  5562.  
  5563.      The following saves out the image as Floyd-Steinberg dithered
  5564.      Extra halfbright:
  5565.  
  5566.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT EHB DITHER FS"'
  5567.  
  5568. BMP
  5569. ---
  5570.  
  5571. Name
  5572.      BMP
  5573.  
  5574. Load types ("Windows" and "OS/2" format).
  5575.      Colour mapped, 24 bit.
  5576.  
  5577. Save types
  5578.      Colour mapped, 24 bit ("Windows" format).
  5579.  
  5580. Description
  5581.      BMP files are commonly found on PCs running Microsoft Windows.
  5582.  
  5583.      BMP images are usually uncompressed and come in 2 flavours -
  5584.      `Windows' and `OS/2'.
  5585.  
  5586. ARexx OPEN command ARGS
  5587.      None.
  5588.  
  5589. ARexx SAVE command ARGS
  5590.      None.
  5591.  
  5592. Example
  5593.      None.
  5594.  
  5595. Datatype
  5596. --------
  5597.  
  5598. Name
  5599.      Datatype
  5600.  
  5601. Load types
  5602.      Colour mapped.
  5603.  
  5604. Save types
  5605.      None.
  5606.  
  5607. Description
  5608.      The datatype IO module will use any datatypes installed on the
  5609.      system to try and load the image. The datatype loader will only
  5610.      work with Workbench3.0 and above.
  5611.  
  5612.      Datatypes are a poor way of loading images into ImageStudio, for
  5613.      the following reasons:
  5614.  
  5615.        1. Datatypes are slow. First the datatype has to convert the
  5616.           image into its internal format, then ImageStudio has to
  5617.           convert this to ImageStudio's internal format.
  5618.  
  5619.        2. Datatypes cannot handle more than 256 colours. Any 24bit
  5620.           image formats are converted by the datatype to 256 colours
  5621.           (or less) which will cause a loss in quality.
  5622.  
  5623.        3. Datatypes cannot use the progress bar whilst converting the
  5624.           incomming image. It is therefore not possible to stop a
  5625.           datatype loading an image during this first phase.
  5626.  
  5627.      Because of these problems, ImageStudio will only try the datatype
  5628.      loader as a "last resort" - trying its own loaders before
  5629.      attempting to the use the datatype module.
  5630.  
  5631.      During testing we have found a few datatypes that cause problems
  5632.      with odd subformats of certain formats. Obviously, ImageStudio has
  5633.      no control over the quality of the datatypes installed on the
  5634.      system.
  5635.  
  5636. ARexx OPEN command ARGS
  5637.      None.
  5638.  
  5639. ARexx SAVE command ARGS
  5640.      None.
  5641.  
  5642. Known bugs
  5643.      The datatype loader currently doesn't handle datatypes which
  5644.      return HAM (HAM6 or HAM8) images.
  5645.  
  5646. Example
  5647.      None.
  5648.  
  5649. EPS
  5650. ---
  5651.  
  5652. Name
  5653.      EPS
  5654.  
  5655. Load types
  5656.      None.
  5657.  
  5658. Save types
  5659.      Greyscale, 24 bit.
  5660.  
  5661. Description
  5662.      EPS files are ASCII text files written in the PostScript language.
  5663.      They can be printed out directly to a PostScript printer or
  5664.      imported into word processing or DTP packages.
  5665.  
  5666.      EPS files are an ineffecient method of storing files, as they are
  5667.      uncompressed and are stored as ASCII text as opposed to binary
  5668.      data.  Unless colour is specifically required it is recommended
  5669.      that EPS files be saved in the greyscale format, as they are one
  5670.      third of the size of a colour EPS file.
  5671.  
  5672. ARexx OPEN command ARGS
  5673.      None.
  5674.  
  5675. ARexx SAVE command ARGS
  5676.      DPI/N, COLOUR
  5677.  
  5678.     DPI/N
  5679.           The resolution of the image in dots per inch. By default, 300
  5680.           dpi is used.
  5681.  
  5682.     COLOUR
  5683.           By default the output image is 256 greyscale. Specifying this
  5684.           option outputs the image as 24bit colour.
  5685.  
  5686. Example
  5687.      The following saves out a COLOUR EPS file:
  5688.  
  5689.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS "COLOUR"
  5690.  
  5691.      The following saves out a 600 by 300 file at 150 dpi, given a
  5692.      printable size of 4inches by 2inch:
  5693.  
  5694.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS '"DPI 150"'
  5695.  
  5696. GIF
  5697. ---
  5698.  
  5699. Name
  5700.      GIF
  5701.  
  5702. Load types
  5703.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5704.  
  5705. Save types
  5706.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5707.  
  5708. Description
  5709.      GIF is a common format for images upto 256 colours.
  5710.  
  5711.      GIF is a trademark of Compuserve Incorporated.
  5712.  
  5713.      GIF images are normally smaller than their equivalent IFF-ILBM
  5714.      counterparts due to GIF's LZW compression algorithm. GIF files are
  5715.      always compressed.
  5716.  
  5717.      GIF comes in 2 flavours - `GIF87a' and `GIF89a'. GIF87a is the
  5718.      most popular format; ImageStudio will load in both GIF87a and
  5719.      GIF89a.
  5720.  
  5721. ARexx OPEN command ARGS
  5722.      None.
  5723.  
  5724. ARexx SAVE command ARGS
  5725.      SUBFORMAT,INTERLACED/S,TRANSPARENCY/S,TRANSPCOLOUR/N
  5726.  
  5727.     SUBFORMAT
  5728.           By default GIF files are saved as the popular GIF87a format.
  5729.           By selecting a subformat of GIF89A, the user may include
  5730.           extra information in the file (e.g. transparent colour
  5731.           information). Specifying a subformat of GIF89a alone provides
  5732.           no extra functionality.
  5733.  
  5734.     INTERLACED/S
  5735.           By default the information in a GIF file is saved in a
  5736.           sequential fashion (e.g. line 1,line 2,line 3...). By
  5737.           specifying this switch the image in saved in a series of
  5738.           interlaced passes which can give faster redraws on some
  5739.           viewers (e.g. World Wide Web browsers). Both GIF87A and
  5740.           GIF89A support interlacing.
  5741.  
  5742.           Note: This interlace has nothing to do with the Amiga's
  5743.           interlaced screens.
  5744.  
  5745.     TRANSPARENCY/S
  5746.           By specifying this switch, one colour out of the image's
  5747.           pallete can be made `transparent', causing the background
  5748.           colour to show through. This again can be useful with World
  5749.           Wide Web browsers. By default, the transparent colour is
  5750.           colour 0, but this can be changed (see below). This switch is
  5751.           only used in the GIF89A subformat.
  5752.  
  5753.     TRANSPCOLOUR/N
  5754.           This is the palette entry number that is made transparent if
  5755.           the TRANSPARENT switch is used. This value is only used in
  5756.           the GIF89A subformat.
  5757.  
  5758. Example
  5759.      The following saves out a standard GIF87a format file:
  5760.  
  5761.           SAVE FILE "Image.gif" FORMAT "GIF"
  5762.  
  5763.      The following saves out a GIF87a file with interlace:
  5764.  
  5765.           SAVE FILE "Image.gif" FORMAT "GIF" ARGS "INTERLACED"
  5766.  
  5767.      The following saves out a GIF89a file with a transparent colour of
  5768.      10:
  5769.  
  5770.           SAVE FILE "Image.gif" FORMAT "GIF",
  5771.              ARGS "SUBFORMAT GIF89A TRANSPARENCY TRANSPCOLOUR 10"
  5772.  
  5773. IFF-DEEP
  5774. --------
  5775.  
  5776. Name
  5777.      IFF-DEEP
  5778.  
  5779. Load types
  5780.      24 bit uncompressed.
  5781.  
  5782. Save types
  5783.      24 bit uncompressed.
  5784.  
  5785. Description
  5786.      The IFF-DEEP format a fast way of storing 24bit data in a IFF
  5787.      format file.
  5788.  
  5789.      IFF-DEEP files can be compressed, but ImageStudio currently only
  5790.      supports the loading and saving of the common uncompressed format.
  5791.      Saving a colour mapped image as IFF-DEEP will cause the image to
  5792.      be promoted to 24bits and the colour map information to be lost.
  5793.  
  5794. ARexx OPEN command ARGS
  5795.      None.
  5796.  
  5797. ARexx SAVE command ARGS
  5798.      None.
  5799.  
  5800. Example
  5801.      The following saves out an IFF-DEEP file:
  5802.  
  5803.           SAVE FILE "Image.deep" FORMAT "IFF-DEEP"
  5804.  
  5805. JPEG
  5806. ----
  5807.  
  5808. Name
  5809.      JPEG
  5810.  
  5811. Load types
  5812.      Greyscale, 24 bit ("JFIF" format).
  5813.  
  5814. Save types
  5815.      Greyscale, 24 bit ("JFIF" format).
  5816.  
  5817. Description
  5818.      JPEG allows the storage of 24-bit images as very small files due
  5819.      to its lossy compression algorithm. Whereas the compression
  5820.      algorithms used by other file formats loose none of the image
  5821.      information, JPEG trades off a little loss in image quality for a
  5822.      high degree of compression.
  5823.  
  5824.      As JPEG is a relatively new format, an exact format of the JPEG
  5825.      file was only agreed on recently. This format is called `JFIF' and
  5826.      these are the most commonly used JPEG format files - and the
  5827.      format that ImageStudio loads and saves. It is highly unlikely
  5828.      that any old JPEG files are still being circulated, but should you
  5829.      find one it is uncertain whether ImageStudio would accept it.
  5830.  
  5831.      A high degree of compatibility is obtained with our JPEG loader /
  5832.      saver routines, as they are based in part on the work of the
  5833.      Independant JPEG group's routines.
  5834.  
  5835. ARexx OPEN command ARGS
  5836.      None.
  5837.  
  5838. ARexx SAVE command ARGS
  5839.      QUALITY/N, GREYSCALE/S
  5840.  
  5841.     QUALITY/N
  5842.           The quality of the jpeg output file. A quality value of 75 is
  5843.           given by default, resulting in an acceptable degredation of
  5844.           image quality. For higher degree of compression choose a
  5845.           lower value(1). For a higher degree of quality, choose a
  5846.           higher value; values of 85 to 90 result in an almost
  5847.           unnoticable loss of quality.
  5848.  
  5849.     GREYSCALE/S
  5850.           By default the JPEG output is 24bit colour. By using this
  5851.           option, the image can also be saved in a greyscale format,
  5852.           where the colour information is lost but the output file size
  5853.           is correspondingly smaller.
  5854.  
  5855. Example
  5856.      The following saves out the current image as JPEG:
  5857.  
  5858.           SAVE FILE "Image.jpg" FORMAT "JPEG"
  5859.  
  5860.      The following saves out the current image as JPEG, with a high
  5861.      degree of compression:
  5862.  
  5863.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 50"'
  5864.  
  5865.      The following saves out the current image as greyscale JPEG:
  5866.  
  5867.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"GREYSCALE"'
  5868.  
  5869.    ---------- Footnotes ----------
  5870.  
  5871.    (1)  Values less than 25 may cause problems with some JPEG readers
  5872.  
  5873. PCX
  5874. ---
  5875.  
  5876. Name
  5877.      PCX
  5878.  
  5879. Load types
  5880.      Colour mapped (2 to 16, 256 colours), 24 bit.
  5881.  
  5882. Save types
  5883.      Colour mapped (256 colours), 24 bit.
  5884.  
  5885. Description
  5886.      PCX files are commonly found on PCs running Microsoft Windows.
  5887.  
  5888.      PCX files are always compressed using a very inefficient
  5889.      run-length encoding algorithm. This algorithm can, in some cases,
  5890.      lead to an increase in file size over an uncompressed image. PCX
  5891.      is included in ImageStudio for compatibility with other platforms,
  5892.      but we do not recommend the general storing of images in this
  5893.      format.
  5894.  
  5895.      ImageStudio only saves 256 colour PCX files as these are the most
  5896.      compatible accross programs. The specification is a little vague
  5897.      as to how to handle 2 to 16 colour PCX files.
  5898.  
  5899. ARexx OPEN command ARGS
  5900.      None.
  5901.  
  5902. ARexx SAVE command ARGS
  5903.      None.
  5904.  
  5905. Example
  5906.      None.
  5907.  
  5908. PNG
  5909. ---
  5910.  
  5911. Name
  5912.      PNG
  5913.  
  5914. Load types
  5915.      Colour mapped, 24, 32 and 48bits.
  5916.  
  5917. Save types
  5918.      Colour mapped, 24bit.
  5919.  
  5920. Description
  5921.      PNG is the license free replacement for the GIF file format.
  5922.  
  5923.      After the controversy with the LZW compression algorithm used in
  5924.      the GIF file format, it was decided that a new standard should be
  5925.      created which uses the license free LZ compression algorithm along
  5926.      with many improvments over the GIF file format (e.g. support for
  5927.      24bit images). PNG is that format, and supports many advanced
  5928.      features to obtain the best lossless compression for any type of
  5929.      bitmap image. PNG also supports features that will find themselves
  5930.      useful in World Wide Web browsers, etc...
  5931.  
  5932.      A high degree of compatibility is obtained with our PNG
  5933.      loader/saver, as it is based in part on the PNGlib code by Group42.
  5934.  
  5935. ARexx OPEN command ARGS
  5936.      None.
  5937.  
  5938. ARexx SAVE command ARGS
  5939.      INTERLACE,TRANSPARENCY/S,TRANSPCOLOUR/N
  5940.  
  5941.     INTERLACE
  5942.           By default PNG files are not interlaced, however by
  5943.           specifying an INTERLACE value of ADAM7 they can be saved out
  5944.           with 7 levels of interlacing. This gives progressive redraw
  5945.           for World Wide Web browsers.
  5946.  
  5947.           Note: This interlace has nothing to do with the Amiga's
  5948.           interlaced screens.
  5949.  
  5950.     TRANSPARENCY/S
  5951.           By specifying this switch, one colour out of the image's
  5952.           pallete can be made `transparent', causing the background
  5953.           colour to show through. This again can be useful with World
  5954.           Wide Web browsers. By default, the transparent colour is
  5955.           colour 0, but this can be changed (see below).
  5956.  
  5957.     TRANSPCOLOUR/N
  5958.           This is the palette entry number that is made transparent if
  5959.           the TRANSPARENT switch is used.
  5960.  
  5961. Example
  5962.      The following saves out a standard PNG format file:
  5963.  
  5964.           SAVE FILE "Image.png" FORMAT "PNG"
  5965.  
  5966.      The following saves out a PNG file with interlace:
  5967.  
  5968.           SAVE FILE "Image.png" FORMAT "PNG" ARGS "INTERLACE=ADAM7"
  5969.  
  5970.      The following saves out a PNG file with a transparent colour of 10:
  5971.  
  5972.           SAVE FILE "Image.png" FORMAT "PNG",
  5973.              ARGS "TRANSPARENCY TRANSPCOLOUR 10"
  5974.  
  5975. PNM
  5976. ---
  5977.  
  5978. Name
  5979.      PNM
  5980.  
  5981. Load types
  5982.      Black and white, greyscale, 24bit colour. ASCII and binary.
  5983.  
  5984. Save types
  5985.      Black and white, greyscale, 24bit colour. ASCII and binary.
  5986.  
  5987. Description
  5988.      PNM is an amalgamation of the PBM, PGM and PPM file formats,
  5989.      commonly found on UNIX machines.
  5990.  
  5991.      The PNM (Portable aNyMap) family of formats are simple way to
  5992.      store images as either binary or ASCII format. The formats are
  5993.      uncompressed, so tend to produce very large files. This module
  5994.      should handle all PNM formats.
  5995.  
  5996.      When loading a PNM file, the file *must* have either a `.pnm',
  5997.      `.pbm', `.pgm' or `.ppm' filename extension.
  5998.  
  5999.      When saving out a black and white PBM file, the current image is
  6000.      converted simply into black and white without dithering. If you
  6001.      require a dithered black and white output you have to reduce the
  6002.      number of colours first within ImageStudio.
  6003.  
  6004. ARexx OPEN command ARGS
  6005.      None.
  6006.  
  6007. ARexx SAVE command ARGS
  6008.      SUBFORMAT,ASCII/S
  6009.  
  6010.     SUBFORMAT
  6011.           SUBFORMAT can be set to either PBM, PGM, PPM depending on
  6012.           whether the output should be black and white, greyscale or
  6013.           24bit colour.
  6014.  
  6015.     ASCII/S
  6016.           By default PNM files are saved in their more compact binary
  6017.           format. By specifying this switch, the output can be pure
  6018.           ASCII text characters. This format produces files whice are
  6019.           substantially larger than the binary format, but which can be
  6020.           directly transferred via text only media (e.g. e-mail).
  6021.  
  6022. Example
  6023.      The following saves out a 24bit PNM format file:
  6024.  
  6025.           SAVE FILE "Image.ppm" FORMAT "PNM" ARGS "SUBFORMAT=PPM"
  6026.  
  6027.      The following saves a black and white ASCII PBM file:
  6028.  
  6029.           SAVE FILE "Image.pbm" FORMAT "PNM" ARGS "SUBFORMAT=PBM ASCII"
  6030.  
  6031. QRT
  6032. ---
  6033.  
  6034. Name
  6035.      QRT
  6036.  
  6037. Load types
  6038.      24bit colour.
  6039.  
  6040. Save types
  6041.      24bit colour.
  6042.  
  6043. Description
  6044.      QRT is the output file format for the QuickRayTracer program, as
  6045.      well as the DKB and POV raytracers.
  6046.  
  6047.      QRT is a simple uncompressed 24bit colour file format.
  6048.  
  6049.      When loading a QRT file, the file *must* have either a `.qrt',
  6050.      `.dkb' or `.pov' filename extension.
  6051.  
  6052. ARexx OPEN command ARGS
  6053.      None.
  6054.  
  6055. ARexx SAVE command ARGS
  6056.      None.
  6057.  
  6058. Example
  6059.      The following saves out a 24bit QTR format file:
  6060.  
  6061.           SAVE FILE "Image.qrt" FORMAT "QRT"
  6062.  
  6063. SGI
  6064. ---
  6065.  
  6066. Name
  6067.      SGI
  6068.  
  6069. Load types
  6070.      Greyscale and 24bit colour. Compressed and uncompressed.
  6071.  
  6072. Save types
  6073.      Greyscale and 24bit colour. Compressed and uncompressed.
  6074.  
  6075. Description
  6076.      SGI-RGB is the file format used by Silicon Graphics workstations.
  6077.  
  6078.      SGI-RGB files can be compressed using run length encoding. As the
  6079.      data is 24bits, this usually has little effect.
  6080.  
  6081. ARexx OPEN command ARGS
  6082.      None.
  6083.  
  6084. ARexx SAVE command ARGS
  6085.      GREYSCALE/S,COMPRESSED/S
  6086.  
  6087.     GREYSCALE/S
  6088.           By default the image is saved in full 24bit colour. By
  6089.           specifying this switch, the output image can be saved as 256
  6090.           greyscales.
  6091.  
  6092.     COMPRESSED/S
  6093.           By specifying this switch the output file may be compressed
  6094.           using run length encoding.
  6095.  
  6096. Example
  6097.      The following saves out a 24bit SGI format file:
  6098.  
  6099.           SAVE FILE "Image.sgi" FORMAT "SGI"
  6100.  
  6101.      The following saves a compressed greyscale image:
  6102.  
  6103.           SAVE FILE "Image.sgi" FORMAT "SGI" ARGS "GREYSCALE COMPRESSED"
  6104.  
  6105. Targa
  6106. -----
  6107.  
  6108. Name
  6109.      TARGA
  6110.  
  6111. Load types
  6112.      Colour mapped (2 and 256 colours), 15, 16, 24 and 32bits.
  6113.  
  6114.      Compressed and uncompressed.
  6115.  
  6116. Save types
  6117.      Colour mapped (256 colours), 24 bit.
  6118.  
  6119.      Uncompressed.
  6120.  
  6121. Description
  6122.      Targa is usually used for storing 24-bit images, although it can
  6123.      also handle colour-mapped images as well. The data is usually
  6124.      stored as simple uncompressed data, however it can also be
  6125.      run-length encoded to allow compression.
  6126.  
  6127. ARexx OPEN command ARGS
  6128.      None.
  6129.  
  6130. ARexx SAVE command ARGS
  6131.      None.
  6132.  
  6133. Example
  6134.      None.
  6135.  
  6136. TIFF
  6137. ----
  6138.  
  6139. Name
  6140.      TIFF
  6141.  
  6142. Load types
  6143.      Baseline TIFF v6 without CCITT Huffman compression.
  6144.  
  6145. Save types
  6146.      Baseline TIFF v6.
  6147.  
  6148. Description
  6149.      TIFF is a very powerful and flexible file format.
  6150.  
  6151.      TIFF is probably the most complex and powerful image file format
  6152.      in common use. TIFF allows the TIFF saver many options in order to
  6153.      optimize the output file for any given use. This is also the
  6154.      problem with TIFF; in order for a program to load TIFF images it
  6155.      must have the ablility to understand all the aspects of the file
  6156.      format. This leads to great incompatibilties as programs create
  6157.      TIFF files which cannot be read in by other programs claiming TIFF
  6158.      loading ability.
  6159.  
  6160.      In order to overcome this problem, the TIFF Advisory Committee
  6161.      produced a `Baseline' TIFF specification which it was intended
  6162.      that all TIFF loaders/savers could handle this minimum level of
  6163.      file format.
  6164.  
  6165.      The TIFF module provided with ImageStudio is based on this
  6166.      baseline specification with some differences. The main difference
  6167.      is lack of compression type 2 (CCITT Huffman) in either the loader
  6168.      or saver. The loader should handle most other TIFF files and has
  6169.      been tested with Macintosh and UNIX image processing programs.
  6170.      Images produced by the module differ from the recommended strip
  6171.      size as dictated by the TIFF specifications. The TIFF specs
  6172.      recommend that the image is broken down into strips and saved out
  6173.      as multiple strips; ImageStudio saves the image out as one large
  6174.      strip to try and maintain compatibility with programs that cannot
  6175.      handle multiple strip images.
  6176.  
  6177.      Due to TIFF's complexity, it is very likely that ImageStudio will
  6178.      encounter invalid TIFF files that will not load into the program.
  6179.      Similarly, TIFF files produced by ImageStudio may not load into
  6180.      other programs (e.g. ones which rely on the strip size being
  6181.      small). This is a fact of TIFF life, we're afraid. The ImageStudio
  6182.      TIFF module was written to compatible, not clever.
  6183.  
  6184. ARexx OPEN command ARGS
  6185.      None.
  6186.  
  6187. ARexx SAVE command ARGS
  6188.      COMPRESSION,DPI/N
  6189.  
  6190.     COMPRESSION
  6191.           Currently no compression is supported, so COMPRESSION=NONE.
  6192.  
  6193.     DPI/N
  6194.           The user may specify the resolution of the output image in
  6195.           dots-per-inch. Images are saved at a default DPI of 300.
  6196.  
  6197. Example
  6198.      The following saves out a TIFF format file:
  6199.  
  6200.           SAVE FILE "Image.tiff" FORMAT "TIFF"
  6201.  
  6202.      The following saves a TIFF image at 72 DPI:
  6203.  
  6204.           SAVE FILE "Image.tiff" FORMAT "TIFF" ARGS "DPI=72"
  6205.  
  6206. VMEM
  6207. ----
  6208.  
  6209. Name
  6210.      VMEM
  6211.  
  6212. Load types
  6213.      Colour mapped and 24bit.
  6214.  
  6215. Save types
  6216.      Colour mapped and 24bit.
  6217.  
  6218. Description
  6219.      VMEM is the data from ImageStudio's virtual memory swap files,
  6220.      plus header information.
  6221.  
  6222.      VMEM files can be loaded and saved by ImageStudio, but their main
  6223.      use is with the `UnCrash' CLI utility given with ImageStudio for
  6224.      resurrecting the virtual memory swap files after a crash.
  6225.  
  6226.      The file format is given below, as this is probably the easiest
  6227.      way of creating and reading images for ImageStudio for use in
  6228.      other programs.
  6229.  
  6230. File Format
  6231.      The file format for the VMEM files is given below should you wish
  6232.      to use the format in your own programs. The file consists of the
  6233.      of an information header (descriped below) followed by the image
  6234.      data. The image header is always a fixed size and the image data
  6235.      is uncompressed.
  6236.  
  6237.      Image header:
  6238.  
  6239.      `C' notation is used, all numbers are stored in Motorola byte
  6240.      order,
  6241.  
  6242.           struct {
  6243.                UBYTE magic1,magic2;       // Values 0xDE and 0xAD
  6244.                UBYTE magic[4];            // Values 'V','M','E','M'
  6245.           
  6246.                WORD width,height;         // Image dimensions
  6247.           
  6248.                BYTE bytes_per_pixel;      // 1 for colour map, 3 for RGB
  6249.           
  6250.                UBYTE cmap[256][3];        // The colour map (empty for RGB)
  6251.                };
  6252.  
  6253.      The structure is not byte padded, i.e. it's 779 bytes in size.
  6254.  
  6255.      Image data:
  6256.  
  6257.      The image data is either the colour map values if the image was
  6258.      colour mapped, or RGB data ordered R,G,B. The length of the image
  6259.      data should be the width times height times bytes_per_pixel.
  6260.  
  6261. ARexx OPEN command ARGS
  6262.      None.
  6263.  
  6264. ARexx SAVE command ARGS
  6265.      None.
  6266.  
  6267. Example
  6268.      None.
  6269.  
  6270. Effects
  6271. =======
  6272.  
  6273.    Select the effect you wish to investigate.
  6274.  
  6275. Dynamic range
  6276. -------------
  6277.  
  6278. Works with
  6279.         - Full colour-mapped images.
  6280.  
  6281.         - Full and regions of 24bit images.
  6282.  
  6283. Description
  6284.      Expands the dynamic range of the image to the maximum possible,
  6285.      without altering the colour balance. This is useful for
  6286.      automatically increasing the contrast of poor contrast images,
  6287.      e.g. the output from a scanner.
  6288.  
  6289. ARexx EFFECT command ARGS
  6290.      None.
  6291.  
  6292. Flip X
  6293. ------
  6294.  
  6295. Works with
  6296.         - Full and regions of colour-mapped images.
  6297.  
  6298.         - Full and regions of 24bit images.
  6299.  
  6300. Description
  6301.      Flips the whole image or selected region horizontally.
  6302.  
  6303. ARexx EFFECT command ARGS
  6304.      None.
  6305.  
  6306. Flip Y
  6307. ------
  6308.  
  6309. Works with
  6310.         - Full and regions of colour-mapped images.
  6311.  
  6312.         - Full and regions of 24bit images.
  6313.  
  6314. Description
  6315.      Flips the whole image or selected region vertically.
  6316.  
  6317. ARexx EFFECT command ARGS
  6318.      None.
  6319.  
  6320. Greyscale
  6321. ---------
  6322.  
  6323. Works with
  6324.         - Full colour-mapped images.
  6325.  
  6326.         - Full and regions of 24bit images.
  6327.  
  6328. Description
  6329.      Reduces a colour image to a greyscale image. The actual greyscale
  6330.      values (or more correctly, luminosity) value is calculated as 30%
  6331.      of the red component + 59% of the green component + 11% of the
  6332.      blue component.
  6333.  
  6334. ARexx EFFECT command ARGS
  6335.      None.
  6336.  
  6337. Highlight
  6338. ---------
  6339.  
  6340. Works with
  6341.         - Full colour-mapped images.
  6342.  
  6343.         - Full and regions of 24bit images.
  6344.  
  6345. Description
  6346.      Turns all colours with greater than the given luminance value to
  6347.      white.
  6348.  
  6349. ARexx EFFECT command ARGS
  6350.      LUMINANCE/N/A
  6351.  
  6352.     LUMINANCE/N/A
  6353.           The luminance value above which pixels should be turned white.
  6354.  
  6355. Negative
  6356. --------
  6357.  
  6358. Works with
  6359.         - Full colour-mapped images.
  6360.  
  6361.         - Full and regions of 24bit images.
  6362.  
  6363. Description
  6364.      Negates the colour values of the image.
  6365.  
  6366. ARexx EFFECT command ARGS
  6367.      None.
  6368.  
  6369. Random
  6370. ------
  6371.  
  6372. Works with
  6373.         - Full and regions of 24bit images.
  6374.  
  6375. Description
  6376.      Adds random noise to the image. The greater the random value, the
  6377.      greater the noise.
  6378.  
  6379. ARexx EFFECT command ARGS
  6380.      RANDOMNESS/N/A
  6381.  
  6382.     RANDOMNESS/N/A
  6383.           The amount of randomness to apply to the image. Values range
  6384.           between 1 and 255.
  6385.  
  6386. Remove isolated pixels
  6387. ----------------------
  6388.  
  6389. Works with
  6390.         - Full and regions of colour-mapped images.
  6391.  
  6392.         - Full and regions of 24bit images.
  6393.  
  6394. Description
  6395.      Removes any single pixels that are a different colour to their
  6396.      neighbours. Useful in removing some of the noise in black and
  6397.      white scans.
  6398.  
  6399. ARexx EFFECT command ARGS
  6400.      None.
  6401.  
  6402. Roll X
  6403. ------
  6404.  
  6405. Works with
  6406.         - Full and regions of colour-mapped images.
  6407.  
  6408.         - Full and regions of 24bit images.
  6409.  
  6410. Description
  6411.      Rolls the whole image or selected region horizontally, wrapping
  6412.      the image around.
  6413.  
  6414. ARexx EFFECT command ARGS
  6415.      DISTANCE/N/A
  6416.  
  6417.     DISTANCE/N/A
  6418.           The distance, in pixels, to move the image. A positive value
  6419.           moves the image to the right, a negative value moves the
  6420.           image to the left.
  6421.  
  6422. Roll Y
  6423. ------
  6424.  
  6425. Works with
  6426.         - Full and regions of colour-mapped images.
  6427.  
  6428.         - Full and regions of 24bit images.
  6429.  
  6430. Description
  6431.      Rolls the whole image or selected region vertically, wrapping the
  6432.      image around.
  6433.  
  6434. ARexx EFFECT command ARGS
  6435.      DISTANCE/N/A
  6436.  
  6437.     DISTANCE/N/A
  6438.           The distance, in pixels, to move the image. A positive value
  6439.           moves the image down, a negative value moves the image up.
  6440.  
  6441. Pixelise
  6442. --------
  6443.  
  6444. Works with
  6445.         - Full and regions of colour-mapped images.
  6446.  
  6447.         - Full and regions of 24bit images.
  6448.  
  6449. Description
  6450.      Replaces all pixels in the whole image or selected region with
  6451.      larger pixels.
  6452.  
  6453. ARexx EFFECT command ARGS
  6454.      PIXELSIZE/N/A
  6455.  
  6456.     PIXELSIZE/N/A
  6457.           The size, in pixels, of the larger pixel blocks.
  6458.  
  6459. Shadow
  6460. ------
  6461.  
  6462. Works with
  6463.         - Full colour-mapped images.
  6464.  
  6465.         - Full and regions of 24bit images.
  6466.  
  6467. Description
  6468.      Turns all colours with less than the given luminance value to
  6469.      black.
  6470.  
  6471. ARexx EFFECT command ARGS
  6472.      LUMINANCE/N/A
  6473.  
  6474.     LUMINANCE/N/A
  6475.           The luminance value below which pixels should be turned black.
  6476.  
  6477. Image types
  6478. ===========
  6479.  
  6480.    ImageStudio works internally with either "colour-mapped" or "24-bit"
  6481. images. A description of the workings of both methods follows.
  6482.  
  6483. Colour-mapped images
  6484.      Colour-mapped (palette based) images are used by the standard
  6485.      (non-HAM) screenmodes on the Amiga. A set of colours (palette) is
  6486.      chosen for the image and every pixel in the image can have one of
  6487.      these colours.
  6488.  
  6489.      Colour-mapped images have the advantage of being a fairly compact
  6490.      way of storing image information and with a large palette (greater
  6491.      than 64 colours) high quality images can be produced. They have
  6492.      the disadvantage that the colours in the image are limited to the
  6493.      colours in the palette - with a small palette it becomes a complex
  6494.      task choosing the correct colours to best portray the image.
  6495.  
  6496. 24-bit images
  6497.      24-bit images allow every pixel in the image to be an individual
  6498.      colour - this is essential for high quality images.
  6499.  
  6500.      24-bit images have the disadvantage that they are typically at
  6501.      least 3-times larger than colour-mapped images and require
  6502.      sophisticated display hardware to show them in their true glory.
  6503.  
  6504. When should I use each type of image?
  6505.      In general, try to leave the image in the format in which it came.
  6506.      If, for example, you load in a colour-mapped image try and perform
  6507.      all your operations directly to the colour-mapped image; only
  6508.      change to a 24-bit image if absolutely necessary (e.g. to apply a
  6509.      convolution filter).
  6510.  
  6511. Colour representations
  6512. ======================
  6513.  
  6514.        ImageStudio works internally with the R,G,B format of colour
  6515. representation. This is the most common method of storing colour
  6516. information on computers, as it represents the amounts of intensities
  6517. applied to the 3 colour guns of a computer monitor.
  6518.  
  6519.        H,S,V stands for Hue, Saturation and Value. The hue is the basic
  6520. colour (e.g. red, yellow, green, purple etc...), saturation is the
  6521. amount of that colour (e.g. weak red, strong red etc...) and the value
  6522. is the brightness of the colour.
  6523.  
  6524. Tooltypes
  6525. =========
  6526.  
  6527.    ImageStudio supports the configuring of the program via tooltypes
  6528. from either the Workbench or CLI.
  6529.  
  6530.    It is recommended that the user who starts the program from
  6531. Workbench uses the "Prefs" requester of ImageStudio to configure it
  6532. (see Prefs), whereas the CLI user should be aware of the tooltype
  6533. options.
  6534.  
  6535.    Boolean tooltypes can have values `ON' or `YES' for a positive
  6536. value, `OFF' or `NO' for a negative values. Numeric tooltypes are
  6537. positive and negative integers; floating point values are not allowed.
  6538.  
  6539. BALANCE
  6540. -------
  6541.  
  6542. Name
  6543.      BALANCE
  6544.  
  6545. Type
  6546.      Boolean
  6547.  
  6548. Description
  6549.      Determines whether the balance floating palette should be open at
  6550.      startup.
  6551.  
  6552. BALANCELEFT
  6553. -----------
  6554.  
  6555. Name
  6556.      BALANCELEFT
  6557.  
  6558. Type
  6559.      Numeric
  6560.  
  6561. Description
  6562.      The top position to open the balance floating palette.
  6563.  
  6564. BALANCETOP
  6565. ----------
  6566.  
  6567. Name
  6568.      BALANCETOP
  6569.  
  6570. Type
  6571.      Numeric
  6572.  
  6573. Description
  6574.      The left position to open the balance floating palette.
  6575.  
  6576. CONVOLVE
  6577. --------
  6578.  
  6579. Name
  6580.      CONVOLVE
  6581.  
  6582. Type
  6583.      Boolean
  6584.  
  6585. Description
  6586.      Determines whether the convolve floating palette should be open at
  6587.      startup.
  6588.  
  6589. CONVOLVELEFT
  6590. ------------
  6591.  
  6592. Name
  6593.      CONVOLVELEFT
  6594.  
  6595. Type
  6596.      Numeric
  6597.  
  6598. Description
  6599.      The top position to open the convolve floating palette.
  6600.  
  6601. CONVOLVETOP
  6602. -----------
  6603.  
  6604. Name
  6605.      CONVOLVETOP
  6606.  
  6607. Type
  6608.      Numeric
  6609.  
  6610. Description
  6611.      The left position to open the convolve floating palette.
  6612.  
  6613. EFFECT
  6614. ------
  6615.  
  6616. Name
  6617.      EFFECT
  6618.  
  6619. Type
  6620.      Boolean
  6621.  
  6622. Description
  6623.      Determines whether the effect floating palette should be open at
  6624.      startup.
  6625.  
  6626. EFFECTLEFT
  6627. ----------
  6628.  
  6629. Name
  6630.      EFFECTLEFT
  6631.  
  6632. Type
  6633.      Numeric
  6634.  
  6635. Description
  6636.      The top position to open the effect floating palette.
  6637.  
  6638. EFFECTTOP
  6639. ---------
  6640.  
  6641. Name
  6642.      EFFECTTOP
  6643.  
  6644. Type
  6645.      Numeric
  6646.  
  6647. Description
  6648.      The left position to open the effect floating palette.
  6649.  
  6650. SCRIPTS
  6651. -------
  6652.  
  6653. Name
  6654.      SCRIPTS
  6655.  
  6656. Type
  6657.      Boolean
  6658.  
  6659. Description
  6660.      Determines whether the scripts floating palette should be open at
  6661.      startup.
  6662.  
  6663. SCRIPTSLEFT
  6664. -----------
  6665.  
  6666. Name
  6667.      SCRIPTSLEFT
  6668.  
  6669. Type
  6670.      Numeric
  6671.  
  6672. Description
  6673.      The top position to open the scripts floating palette.
  6674.  
  6675. SCRIPTSTOP
  6676. ----------
  6677.  
  6678. Name
  6679.      SCRIPTSTOP
  6680.  
  6681. Type
  6682.      Numeric
  6683.  
  6684. Description
  6685.      The left position to open the scripts floating palette.
  6686.  
  6687. PREVIEWLEFT
  6688. -----------
  6689.  
  6690. Name
  6691.      PREVIEWLEFT
  6692.  
  6693. Type
  6694.      Numeric
  6695.  
  6696. Description
  6697.      The top position to open the preview window.
  6698.  
  6699. PREVIEWTOP
  6700. ----------
  6701.  
  6702. Name
  6703.      PREVIEWTOP
  6704.  
  6705. Type
  6706.      Numeric
  6707.  
  6708. Description
  6709.      The left position to open the preview window.
  6710.  
  6711. PREVIEWWIDTH
  6712. ------------
  6713.  
  6714. Name
  6715.      PREVIEWWIDTH
  6716.  
  6717. Type
  6718.      Numeric
  6719.  
  6720. Description
  6721.      The width to open the preview window.
  6722.  
  6723. PREVIEWHEIGHT
  6724. -------------
  6725.  
  6726. Name
  6727.      PREVIEWHEIGHT
  6728.  
  6729. Type
  6730.      Numeric
  6731.  
  6732. Description
  6733.      The height to open the preview window.
  6734.  
  6735. FONTNAME
  6736. --------
  6737.  
  6738. Name
  6739.      FONTNAME
  6740.  
  6741. Type
  6742.      String
  6743.  
  6744. Description
  6745.      The name of the font to use to layout the ImageStudio windows and
  6746.      menus.
  6747.  
  6748.      When specifying the font name, the font name must be have a
  6749.      `.font' appended to its name. For example, to set the default to
  6750.      be helvetica, the tooltype should be specified as:
  6751.  
  6752.           FONTNAME=helvetica.font
  6753.  
  6754.      The fontname is not case sensitive.
  6755.  
  6756. FONTSIZE
  6757. --------
  6758.  
  6759. Name
  6760.      FONTSIZE
  6761.  
  6762. Type
  6763.      Numeric
  6764.  
  6765. Description
  6766.      The size of the font to use to layout the ImageStudio windows and
  6767.      menus.
  6768.  
  6769.      If a large font is specified which would cause some of the windows
  6770.      to become too large to fit on the ImageStudio screen, the font
  6771.      will default to topaz 8.
  6772.  
  6773. SCREENMODEID
  6774. ------------
  6775.  
  6776. Name
  6777.      SCREENMODEID
  6778.  
  6779. Type
  6780.      Numeric
  6781.  
  6782. Description
  6783.      The screenmode to open the ImageStudio screen. This value is the
  6784.      value returned by the REQUEST_SCREENMODE ARexx command in the
  6785.      MODEID value (see ARexx_REQUEST_SCREENMODE).
  6786.  
  6787. SCREENOVERSCAN
  6788. --------------
  6789.  
  6790. Name
  6791.      SCREENOVERSCAN
  6792.  
  6793. Type
  6794.      Numeric
  6795.  
  6796. Description
  6797.      The overscan to use with the ImageStudio screen. Valid values are
  6798.      1 for text overscan, 2 for graphics size, 3 for extreme and 4 for
  6799.      maximum.
  6800.  
  6801.      Note, this tooltype has changed from v1.x.x, where it was a string
  6802.      type.
  6803.  
  6804. SCREENDEPTH
  6805. -----------
  6806.  
  6807. Name
  6808.      SCREENDEPTH
  6809.  
  6810. Type
  6811.      Numeric
  6812.  
  6813. Description
  6814.      The depth of the ImageStudio screen. Valid values are 1 to 8.
  6815.  
  6816. SCREENWIDTH
  6817. -----------
  6818.  
  6819. Name
  6820.      SCREENWIDTH
  6821.  
  6822. Type
  6823.      Numeric
  6824.  
  6825. Description
  6826.      The width of the ImageStudio screen. Valid values are greater than
  6827.      640.
  6828.  
  6829. SCREENHEIGHT
  6830. ------------
  6831.  
  6832. Name
  6833.      SCREENHEIGHT
  6834.  
  6835. Type
  6836.      Numeric
  6837.  
  6838. Description
  6839.      The height of the ImageStudio screen. Valid values are greater
  6840.      than 200.
  6841.  
  6842. BLANKSCRIPT
  6843. -----------
  6844.  
  6845. Name
  6846.      BLANKSCRIPT
  6847.  
  6848. Type
  6849.      String
  6850.  
  6851. Description
  6852.      The filename of the Blank ARexx script to use a template when a
  6853.      new script is created in the `Scripts' floating palette.
  6854.  
  6855. CONVOLVEDIR
  6856. -----------
  6857.  
  6858. Name
  6859.      CONVOLVEDIR
  6860.  
  6861. Type
  6862.      String
  6863.  
  6864. Description
  6865.      The directory to scan on startup for convolution filters to
  6866.      include in the `Convolves' floating palette.
  6867.  
  6868. EXTERNALVIEWER
  6869. --------------
  6870.  
  6871. Name
  6872.      EXTERNALVIEWER
  6873.  
  6874. Type
  6875.      String
  6876.  
  6877. Description
  6878.      The external program to run to view the image. The string is in
  6879.      the format that would be typed from the command line, with a `%s'
  6880.      where the image filename should be placed.
  6881.  
  6882.      It is recommended that the string be prefixed with a "run" to
  6883.      allow the external viewer to run in the background, otherwise
  6884.      ImageStudio has to wait for the program to finish. For example:
  6885.  
  6886.           sys:Utilities/VT <NIL: >NIL: %s
  6887.  
  6888.      would leave ImageStudio waiting until ViewTek had finished, whereas
  6889.  
  6890.           run sys:Utilities/VT <NIL: >NIL: %s
  6891.  
  6892.      would run ViewTek in the background. The "<NIL:" and ">NIL:" are
  6893.      used to stop error messages being printed to the console.
  6894.  
  6895. HELPFILE
  6896. --------
  6897.  
  6898. Name
  6899.      HELPFILE
  6900.  
  6901. Type
  6902.      String
  6903.  
  6904. Description
  6905.      The full filename of the AmigaGuide help file to provide online
  6906.      help.
  6907.  
  6908.      Note, the *full* filename must be provided, a filename taken from
  6909.      the current directory will not work. For example:
  6910.  
  6911.           Docs/ImageStudio.guide
  6912.  
  6913.      will not work, whereas
  6914.  
  6915.           Work:Graphics/ImageStudio/Docs/ImageStudio.guide
  6916.  
  6917.      will work fine.
  6918.  
  6919.      If you do wish to specify the current directory, you may use the
  6920.      `PROGDIR:' volume assignment. PROGDIR: is set to be the current
  6921.      directory of the current program, each program having its own
  6922.      PROGDIR: value that can only be used within the program.
  6923.      Therefore, the above AmigaGuide helpfile can be refered to as:
  6924.  
  6925.           PROGDIR:Docs/ImageStudio.guide
  6926.  
  6927.      See Tooltype_HELP, for more information on AmigaGuide help.
  6928.  
  6929. IMAGEDIR
  6930. --------
  6931.  
  6932. Name
  6933.      IMAGEDIR
  6934.  
  6935. Type
  6936.      String
  6937.  
  6938. Description
  6939.      The default directory to use for images when ImageStudio is loaded.
  6940.  
  6941. INTERNALVIEWER
  6942. --------------
  6943.  
  6944. Name
  6945.      INTERNALVIEWER
  6946.  
  6947. Type
  6948.      String
  6949.  
  6950. Description
  6951.      The filename of module used for the internal viewer. See See
  6952.      Internal_viewer, for more information on the different capablities
  6953.      of the different viewer modules.
  6954.  
  6955. KEYFILE
  6956. -------
  6957.  
  6958. Name
  6959.      KEYFILE
  6960.  
  6961. Type
  6962.      String
  6963.  
  6964. Description
  6965.      The filename of the keyfile to use to unlock ImageStudio to use
  6966.      full sized images. Keyfiles are obtaining by registering (see How
  6967.      to register).
  6968.  
  6969. MODULEDIR
  6970. ---------
  6971.  
  6972. Name
  6973.      MODULEDIR
  6974.  
  6975. Type
  6976.      String
  6977.  
  6978. Description
  6979.      The default directory to use for external modules.
  6980.  
  6981.      Inside the module directory are other directories containing
  6982.      modules specific to file loading/saving, viewers, effects etc...
  6983.      These directories are scanned when ImageStudio starts up.
  6984.  
  6985. PALETTEDIR
  6986. ----------
  6987.  
  6988. Name
  6989.      PALETTEDIR
  6990.  
  6991. Type
  6992.      String
  6993.  
  6994. Description
  6995.      The default directory to use for palettes when ImageStudio is
  6996.      loaded.
  6997.  
  6998.      See Palette, for more details on loading palettes into ImageStudio.
  6999.  
  7000. PORTNAME
  7001. --------
  7002.  
  7003. Name
  7004.      PORTNAME
  7005.  
  7006. Type
  7007.      String
  7008.  
  7009. Description
  7010.      The name of the ARexx portname used by the program.
  7011.  
  7012.      If a portname by that name already exists, the name is incremented
  7013.      until a free portname is found. For example, if `IMAGESTUDIO' was
  7014.      already in use, the following sequence of names would be tried:
  7015.      `IMAGESTUDIO.1', `IMAGESTUDIO.2', `IMAGESTUDIO.3' ...
  7016.  
  7017.      When choosing an ARexx portname, try to keep it fairly short.
  7018.  
  7019. REXXOUTPUT
  7020. ----------
  7021.  
  7022. Name
  7023.      REXXOUTPUT
  7024.  
  7025. Type
  7026.      String
  7027.  
  7028. Description
  7029.      The name of the filename to use for ARexx scripts' output. See
  7030.      Basic ARexx, for more information on this file.
  7031.  
  7032. SCREENNAME
  7033. ----------
  7034.  
  7035. Name
  7036.      SCREENNAME
  7037.  
  7038. Type
  7039.      String
  7040.  
  7041. Description
  7042.      The name of ImageStudio's public screen. This name must be unique,
  7043.      otherwise the screen won't open.
  7044.  
  7045. SCRIPTSDIR
  7046. ----------
  7047.  
  7048. Name
  7049.      SCRIPTSDIR
  7050.  
  7051. Type
  7052.      String
  7053.  
  7054. Description
  7055.      The default directory that will be scanned for ARexx script files
  7056.      to put in the `Scripts' floating palette list. Any file with the
  7057.      chosen ARexx script extension (see Tooltype_SCRIPTSEXT) will be
  7058.      placed in the list.
  7059.  
  7060. SCRIPTSEXT
  7061. ----------
  7062.  
  7063. Name
  7064.      SCRIPTSEXT
  7065.  
  7066. Type
  7067.      String
  7068.  
  7069. Description
  7070.      The default filename extension for the ImageStudio ARexx scripts.
  7071.      Only scripts with this extension will be added to the list in the
  7072.      `Scripts' floating palette.
  7073.  
  7074. TEMPDIR
  7075. -------
  7076.  
  7077. Name
  7078.      TEMPDIR
  7079.  
  7080. Type
  7081.      String
  7082.  
  7083. Description
  7084.      The directory in which ImageStudio can put its virtual memory
  7085.      temporary swap files. This should be some location on your hard
  7086.      disk, as the data will be accessed a lot during some operations.
  7087.      If you have lots of RAM, the temporary directory can be placed in
  7088.      the ram disk for maximum speed.
  7089.  
  7090. TEXTEDITOR
  7091. ----------
  7092.  
  7093. Name
  7094.      TEXTEDITOR
  7095.  
  7096. Type
  7097.      String
  7098.  
  7099. Description
  7100.      The text editor used to edit ARexx scripts from the `Scripts'
  7101.      floating palette. The string is in the format that would be typed
  7102.      from the command line, with a `%s' where the image filename should
  7103.      be placed.
  7104.  
  7105.      It is recommended that the string be prefixed with a "run" to
  7106.      allow the text editor to run in the background, otherwise
  7107.      ImageStudio has to wait for the program to finish. For example:
  7108.  
  7109.           sys:Tools/Memacs <NIL: >NIL: %s
  7110.  
  7111.      would leave ImageStudio waiting until Microemacs had finished,
  7112.      whereas
  7113.  
  7114.           run sys:Tools/Memacs <NIL: >NIL: %s
  7115.  
  7116.      would run Microemacs in the background. The "<NIL:" and ">NIL:"
  7117.      are used to stop error messages being printed to the console.
  7118.  
  7119. CLIPUNIT
  7120. --------
  7121.  
  7122. Name
  7123.      CLIPUNIT
  7124.  
  7125. Type
  7126.      Numeric
  7127.  
  7128. Description
  7129.      The system clipboard used to copy (see Copy) and paste (see Paste)
  7130.      by the program. There is very little need to change this from the
  7131.      default value of 0.
  7132.  
  7133. PAGESIZE
  7134. --------
  7135.  
  7136. Name
  7137.      PAGESIZE
  7138.  
  7139. Type
  7140.      Numeric
  7141.  
  7142. Description
  7143.      The size, in K, of the virtual memory pages. The larger this
  7144.      number, the more real RAM is used but the less frequent the
  7145.      accesses to the swap files (see Tooltype_TEMPDIR).
  7146.  
  7147.      At most, two of these pages will be allocated in RAM at any one
  7148.      time.
  7149.  
  7150. UNDOBUFFERS
  7151. -----------
  7152.  
  7153. Name
  7154.      UNDOBUFFERS
  7155.  
  7156. Type
  7157.      Numeric
  7158.  
  7159. Description
  7160.      The number of levels of undo / redo available. The larger this
  7161.      number, the more disk space is needed for the virtual memory swap
  7162.      files (this doesn't change the amount of RAM required).
  7163.  
  7164. APPICON
  7165. -------
  7166.  
  7167. Name
  7168.      APPICON
  7169.  
  7170. Type
  7171.      Boolean
  7172.  
  7173. Description
  7174.      Turns the AppIcon on the Workbench on or off. By having an
  7175.      AppIcon, users may double-click on the icon to bring the
  7176.      ImageStudio screen to the front or drop image files on it to load
  7177.      them.
  7178.  
  7179. COLOURPREVIEW
  7180. -------------
  7181.  
  7182. Name
  7183.      COLOURPREVIEW
  7184.  
  7185. Type
  7186.      Boolean
  7187.  
  7188. Description
  7189.      Switches between a greyscale and colour preview display. A colour
  7190.      preview can only be displayed when ImageStudio is run on screens
  7191.      with 16 colours or more. The colour preview will always use an
  7192.      ordered dither to enhance the display of the image, whereas the
  7193.      dithering can be turned off when using a greyscale preview (see
  7194.      Tooltype_COLOURPREVIEW).
  7195.  
  7196.      The value of the PREVIEWDITHER preference is ignored when using a
  7197.      colour preview - the colour preview is always dithered.
  7198.  
  7199. HELP
  7200. ----
  7201.  
  7202. Name
  7203.      HELP
  7204.  
  7205. Type
  7206.      Boolean
  7207.  
  7208. Description
  7209.      Turns AmigaGuide help on or off. Turning on AmigaGuide help uses
  7210.      more RAM as some pages are kept in memory.
  7211.  
  7212. MODULECACHE
  7213. -----------
  7214.  
  7215. Name
  7216.      MODULECACHE
  7217.  
  7218. Type
  7219.      Boolean
  7220.  
  7221. Description
  7222.      Allows modules to be kept resident in RAM to speed up access times.
  7223.  
  7224.      Turning this option off forces all modules to be flushed from
  7225.      memory after they are used; this results in the program requiring
  7226.      very little memory but involves reading the modules off disk
  7227.      everytime they are required.
  7228.  
  7229.      Module caching on will leave the modules resident in RAM, making
  7230.      for faster access. If the Amiga's operating system starts to get
  7231.      really low on RAM, the modules are still flushed.
  7232.  
  7233.      All modules are flushed from memory when the program quits.
  7234.  
  7235. PREVIEWDITHER
  7236. -------------
  7237.  
  7238. Name
  7239.      PREVIEWDITHER
  7240.  
  7241. Type
  7242.      Boolean
  7243.  
  7244. Description
  7245.      Turns ordered dithering on or off in the preview window. Turning
  7246.      preview dithering off uses slightly less memory and is slightly
  7247.      faster than the ordered dither.
  7248.  
  7249. PREVIEWREDRAW
  7250. -------------
  7251.  
  7252. Name
  7253.      PREVIEWREDRAW
  7254.  
  7255. Type
  7256.      Boolean
  7257.  
  7258. Description
  7259.      Turns the redrawing of the image on or off in the preview window.
  7260.      Normally this is kept on, but ARexx scripts may wish to turn this
  7261.      off (see ARexx_PREF_SET) to speed up some processing.
  7262.  
  7263. SPLASHWINDOW
  7264. ------------
  7265.  
  7266. Name
  7267.      SPLASHWINDOW
  7268.  
  7269. Type
  7270.      Boolean
  7271.  
  7272. Description
  7273.      Turns on or off the opening of the `About' window when the program
  7274.      starts up.
  7275.  
  7276. SCREENFRONT
  7277. -----------
  7278.  
  7279. Name
  7280.      SCREENFRONT
  7281.  
  7282. Type
  7283.      Boolean
  7284.  
  7285. Description
  7286.      ImageStudio starts up by keeping its screen behind all others. By
  7287.      turning this tooltype on, the screen is brought to the front after
  7288.      the startup initialisations have taken place.
  7289.  
  7290. Known bugs
  7291. ==========
  7292.  
  7293.    Known bugs:
  7294.  
  7295.    * Calling AmigaDos commands from an ARexx script running from the
  7296.      `Scripts' floating palette sometimes causes the machine to freeze
  7297.      if the command fails and tries to print some text. To fix this,
  7298.      pipe the input and output of all commands to `NIL:' (see Common
  7299.      ARexx problems).
  7300.  
  7301.    * At the moment it is possible to run more than one ARexx script
  7302.      from outside ImageStudio and this will lead to the ARexx commands
  7303.      from the multiple scripts being mixed together. We don't know if
  7304.      it's possible to only run one script at a time externally. If you
  7305.      run all your scripts from inside ImageStudio, this will never
  7306.      happen.
  7307.  
  7308.    * Under Workbench2.x the checkbox and mutual exclude (radio button)
  7309.      gadgets don't scale with font size. This may lead to slightly
  7310.      strange looking windows with very small or very large fonts.
  7311.      Workbench3.x scales these gadgets correctly.
  7312.  
  7313.    * ImageStudio has problems when running with the MagicFileRequester
  7314.      (MFR) utility. It seems that ImageStudio uses some features of the
  7315.      ASL file requesters that are unsupported by MFR and this causes
  7316.      MFR to crash. *This is not our problem, we are not doing anything
  7317.      wrong*. We've tried to contact the author about this, but to no
  7318.      avail. We suggest that when using ImageStudio, MFR is not used.
  7319.  
  7320.    If you think you have found a bug not covered here, please contact
  7321. the authors to report it (see The authors).
  7322.  
  7323. UnCrash
  7324. =======
  7325.  
  7326.    ImageStudio comes with a small CLI utility called `UnCrash' which
  7327. can be useful in trying to recover image data from the virtual memory
  7328. swap files left after a crash. It is worth mentioning that there should
  7329. be *no way* in which ImageStudio should crash the computer; UnCrash is
  7330. for use when ImageStudio is running and another program causes a crash
  7331. or there is a power cut, etc...
  7332.  
  7333.    UnCrash should be run immediately after the crash; running
  7334. ImageStudio again before running UnCrash may cause the original virtual
  7335. memory swap files to be overwritten.
  7336.  
  7337.    UnCrash needs the following information to recover a swap file:
  7338.  
  7339.   1. The filename of the ImageStudio virtual memory swap file. This
  7340.      will be located in the directory given by the TEMPDIR preference,
  7341.      and be called something like `IMAGESTUDIO.1'. Normally these files
  7342.      are deleted when ImageStudio quits, but if the machine crashes
  7343.      there is no way these can be automatically deleted.
  7344.  
  7345.   2. The filename of the output image file to be created. The output
  7346.      file is in the `VMEM' file format (see VMEM) which only
  7347.      ImageStudio will load.
  7348.  
  7349.   3. The width and height of the original image. ImageStudio will only
  7350.      swap out the raw image data when dealing with virtual memory;
  7351.      details like the image's number of colours, palette and size are
  7352.      not saved in the swap file so they must be provided by the user.
  7353.  
  7354.    UnCrash will always try its best to recover the swap file and create
  7355. a useable VMEM image file. Should you specify incorrect dimensions for
  7356. the image or the swap file has become damaged in some way, UnCrash may
  7357. produce warnings and ImageStudio may warn about the quality of the VMEM
  7358. file created by UnCrash.
  7359.  
  7360.    The following example shows how UnCrash could be used to recover a
  7361. 640x480 virtual memory swap file after a crash:
  7362.  
  7363.      UnCrash Work:tmp/IMAGESTUDIO.3 ram:outimage.vmem 640 480
  7364.  
  7365. Common questions
  7366. ****************
  7367.  
  7368.    If you have any questions about ImageStudio, make sure that it
  7369. hasn't already been answered below:
  7370.  
  7371. Common question 1
  7372. =================
  7373.  
  7374.      "Why doesn't ImageStudio support TIFF fully?"
  7375.  
  7376.    The TIFF module supplied with ImageStudio closely follows the
  7377. version 6 Baseline TIFF specifications, so it should handle most of the
  7378. common TIFF files. We will probably be improving the TIFF module in the
  7379. future, but to fully support the TIFF standard would be an enormous
  7380. amount of programming.
  7381.  
  7382.    As a side note, we originally were going to use the TIFFlib from
  7383. Silicon Graphics' Sam Leffler. After compiling the code, we had a
  7384. library (minus module code) of around 250K. We decided that this was
  7385. just too much code to include as a module (of similar size to the
  7386. ImageStudio executable itself!), so we wrote our own TIFF code. Bear in
  7387. mind that even the TIFFlib doesn't handle all of the TIFF v6
  7388. specification, although it does handle most cases.
  7389.  
  7390. Common question 2
  7391. =================
  7392.  
  7393.      "Will you be adding SHAM, PCHG ..."
  7394.  
  7395.    At the moment we have no plans to add SHAM or CTBL formats due to
  7396. their hardware dependence. PCHG will probably be added later.
  7397.  
  7398. Common question 3
  7399. =================
  7400.  
  7401.      "Can I turn virtual memory off?"
  7402.  
  7403.    ImageStudio will always work with virtual memory. If you are lucky
  7404. enough to have lots of RAM and you wish to use that instead of your
  7405. hard disk, simply put the temp. files in the ram disk (see
  7406. Tooltype_TEMPDIR). The overhead of using virtual memory from RAM is
  7407. negligible.
  7408.  
  7409. Common question 4
  7410. =================
  7411.  
  7412.      "What other programs have the authors written?"
  7413.  
  7414.    Andy and Graham have written "TextureStudio", a shareware Imagine3
  7415. format texture renderer. See TextureStudio, for more information.
  7416.  
  7417.    Andy has written "StickIt" - an Amiga equivalent of the `PostIt'
  7418. note; useful for reminding you of things to do.
  7419.  
  7420.    Graham has written "MultiSample" and "MooseDrive". Multisample is a
  7421. utility for converting to and from common Amiga / PC / Atari ST sound
  7422. sample formats. MooseDrive is a frantic "viewed from the top" car
  7423. racing game with multiple large scrolling tracks and the ability to
  7424. upgrade your car as you win races.
  7425.  
  7426.    All the above programs are available from PD libraries as well as
  7427. the Internet's `Aminet' servers.
  7428.  
  7429. Common question 5
  7430. =================
  7431.  
  7432.      "How much disk space do the swap files use?"
  7433.  
  7434.    If the image is colour-mapped, 1 byte per pixel is used. Therefore,
  7435. the total number of bytes used is calculated as:
  7436.  
  7437.      bytes used = image_width x image_height
  7438.  
  7439.    If the image is 16 million colours, 3 bytes per pixel are used.
  7440. Therefore, the total number of bytes used is calculated as:
  7441.  
  7442.      bytes used = image_width x image_height x 3
  7443.  
  7444. Common question 6
  7445. =================
  7446.  
  7447.      "What is the .dvi and .ps documentation?"
  7448.  
  7449.    ".dvi" files are created with TeX program and can be viewed or
  7450. printed with appropriate utilities. This allows any user with the TeX
  7451. system installed to print the documentation out on any type of printer.
  7452.  
  7453.    ".ps" files are raw PostScript and can be printed on any PostScript
  7454. printer simply be sending them directly to the printer.
  7455.  
  7456. Common question 7
  7457. =================
  7458.  
  7459.      "Will you be adding support for animations?"
  7460.  
  7461.    Adding animation support is possible, but very very low on our list
  7462. of priorities. If you require image processing of animations with
  7463. ImageStudio, we recommend that you obtain a copy of Marcus Moenig's
  7464. `MainActor' program. With a bit of ARexx glue, MainActor could split
  7465. the animation, pass the frames to ImageStudio for processing and then
  7466. join them back into an animation afterwards.
  7467.  
  7468.    MainActor is a shareware program available from all good PD houses.
  7469.  
  7470. Common question 8
  7471. =================
  7472.  
  7473.      "Can you write a general virtual memory program?"
  7474.  
  7475.    We have been asked many times about writing a general purpose
  7476. virtual memory program that can be used with *all* Amigas (i.e. doesn't
  7477. require an MMU). To the best of our knowledge, this is not possible.
  7478. Our virtual memory routines don't require a MMU because they are
  7479. internal to ImageStudio and ImageStudio knows which parts of memory it
  7480. is currently using and which are safe to swap out to disk.
  7481.  
  7482.    A general purpose virtual memory program has to trap processor
  7483. instructions and decide whether that particular part of memory needs to
  7484. be loaded in. It also has to make smart decisions as to which part of
  7485. least used memory can be swapped out. In order to trap these processor
  7486. memory accesses, a MMU is vital.
  7487.  
  7488. Common question 9
  7489. =================
  7490.  
  7491.      "Why don't you use a MUI for your windows design"
  7492.  
  7493.    `MUI', or `Magic User Interface', is a tool written by Stefan Stuntz
  7494. for designing font sensitive GUIs for Amiga programs.
  7495.  
  7496.    We do not use MUI for the same reason that we don't use any other
  7497. third party GUI software that requires runtime libraries. There are 2
  7498. main problems in using third party utilities:
  7499.  
  7500.   1. The user of ImageStudio is then expected to install extra software
  7501.      on their system just to get ImageStudio to run. In the case of
  7502.      MUI's installation, this can be be several hundred kilobytes of
  7503.      extra files.
  7504.  
  7505.   2. If at a later date a new version of the Amiga's operating system
  7506.      causes these third party products to fail, ImageStudio will also
  7507.      fail. We have been very careful in writing ImageStudio to adhere
  7508.      to Commodore's programming guidelines and therefore we see no
  7509.      reason why ImageStudio should fail to work with further operating
  7510.      system versions. Relying on third party products does not give us
  7511.      that confidence.
  7512.  
  7513.      In the very worst case that the author of third party product was
  7514.      unable or unwilling to update his / her software for the new
  7515.      operating system, ImageStudio would need to be re-written - not
  7516.      something we have any wish to do.
  7517.  
  7518. Common question 10
  7519. ==================
  7520.  
  7521.      "Will you be releasing the module format"
  7522.  
  7523.    When the format of the modules is fixed we will release development
  7524. documentation describing how users may write thier own modules.
  7525. Currently the module format is liable to change, so it would be unwise
  7526. to release such information now.
  7527.  
  7528. The authors
  7529. ***********
  7530.  
  7531.    ImageStudio was written by Andy Dean and Graham Dean.
  7532.  
  7533.    Queries and orders (see How to register) should be sent to Graham at:
  7534.  
  7535.      Graham Dean,
  7536.      14 Fielding Avenue,
  7537.      Poynton,
  7538.      Stockport,
  7539.      Cheshire.
  7540.      SK12 1YX
  7541.      ENGLAND
  7542.  
  7543.    Andy can be reached for queries (no orders) via Internet Email at:
  7544.  
  7545.      adean@eleceng.ucl.ac.uk
  7546.  
  7547.    Note: This Email address may change after September 1995; the postal
  7548. address given above will remain valid.
  7549.  
  7550.    The rate at which ImageStudio progresses depends on a few things:
  7551.  
  7552.   1. You. If you like and use the program, please register it. If you
  7553.      like the program but think it is missing something that isn't
  7554.      already in our future additions list (see Future additions) *let
  7555.      us know!*.
  7556.  
  7557.   2. Other work. Graham is studying `A' levels and Andy is doing a PhD
  7558.      and this work will take priority (sad, but true).
  7559.  
  7560.    If you find a bug in ImageStudio that is not convered in the `Known
  7561. bugs' list (see Known bugs), please inform the authors at the above
  7562. addresses; don't assume that someone else will, we don't notice all the
  7563. problems ourselves.
  7564.  
  7565.    Please include as much information about the problem as possible,
  7566. including:
  7567.  
  7568.    * Version of ImageStudio and whether it is the 68000 or 68020
  7569.      version.
  7570.  
  7571.    * Amiga model.
  7572.  
  7573.    * Version of Workbench/Kickstart.
  7574.  
  7575.    * Amount of RAM (fast and chip), hard disk size and type, processor.
  7576.  
  7577.    * Any extra hardware boards you have connected to your Amiga.
  7578.  
  7579.    * Any utilities you are running at the same time as ImageStudio.
  7580.  
  7581.    * Whether the problem is repeatable or just occasional.
  7582.  
  7583.    * If you have Enforcer or Mungwall, do these report anything?
  7584.  
  7585.    We treat all bug reports with the utmost importance but it is
  7586. difficult for us to investigate problems with very little detail on how
  7587. they happen, so please, send us as much information as possible.
  7588.  
  7589.    If you are having problems loading a particular file into
  7590. ImageStudio, test whether it will load into any another package and if
  7591. possible whether other files created by the same program also give
  7592. problems. We cannot really test every faulty file, but if files created
  7593. by one particular program only give problems on ImageStudio then we'll
  7594. look into that.
  7595.  
  7596.    ImageStudio has been tested on:
  7597.  
  7598.    - A500, Workbench 2.04, 1Mbyte CHIP RAM, 2Mbyte FAST RAM, A590
  7599.      85Mbyte SCSI hard drive, Microbotics VXL*30 accelerator (no 32-bit
  7600.      RAM).
  7601.  
  7602.    - A1200, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM, Power
  7603.      ViperI 68030 accelerator card, 68882 FPU, 270Mbyte IDE hard drive.
  7604.  
  7605.    - A4000/EC030, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM,
  7606.      68882 FPU, 130Mbyte + 420Mbyte IDE hard drives.
  7607.  
  7608.    ImageStudio shows no problems with either the Enforcer or Mungwall
  7609. debugging tools.
  7610.  
  7611. How to register
  7612. ***************
  7613.  
  7614.    To receive the full version of ImageStudio, send 10 pounds sterling
  7615. (20 US dollars overseas) to:
  7616.  
  7617.      Graham Dean,
  7618.      14 Fielding Avenue,
  7619.      Poynton,
  7620.      Stockport,
  7621.      Cheshire.
  7622.      SK12 1YX
  7623.      ENGLAND
  7624.  
  7625.    We will accept the following methods of payment:
  7626.    * 10UK pounds cash.
  7627.  
  7628.    * A 10UK pounds cheque, drawn on a UK bank.
  7629.  
  7630.    * A 10UK pounds postal order, purchased in the UK.
  7631.  
  7632.    * 20US dollars cash.
  7633.  
  7634.    * International money order.
  7635.  
  7636.    We *don't* accept any foreign cheques drawn on non-UK banks and we
  7637. *don't* accept any foreign postal orders. We also cannot accept
  7638. Eurocheques for any value (USdollars or UKpounds).
  7639.  
  7640.    Note: Make sure that when sending cash, it is well wrapped in the
  7641. envelope.
  7642.  
  7643.    In return you will receive the latest version of ImageStudio, along
  7644. with a personal keyfile to unlock the package. Each keyfile is unique
  7645. to the registered user, please do not distribute the keyfile to others
  7646. as it can be traced back to you. Allow a resonable time to allow cheque
  7647. clearance, the processing of the order, etc...
  7648.  
  7649.    Upgrades will be offered to registered users free of charge. As we
  7650. are now operating a keyfile concept, upgrades can be obtained by
  7651. getting the latest version from the Internet, Aminet, BBS's, PD houses
  7652. etc... If your local provider doesn't have the latest version, pester
  7653. them until they get it!
  7654.  
  7655.    Upgrades will not now be given by contacting the authors directly,
  7656. unless there is a very good reason for it (we're sorry, but we don't
  7657. have the resources to deal with lots of registered users all wanting
  7658. upgrades at the same time!).
  7659.  
  7660.    The version number of ImageStudio (see About) is to be interpreted
  7661. as:
  7662.  
  7663.      version.revision.subrevision
  7664.  
  7665.    The `version' shows the main version of the program, `revision' will
  7666. be increased as small additions and improvements are made to the
  7667. program. The `subrevision' value is incremented with bug fixes. All the
  7668. values are simple decimal, not floating point, so version 1.9.0 would
  7669. be followed by version 1.10.0.
  7670.  
  7671.    New versions will be distributed with every change in revision
  7672. number, bug fixes are likely to be distributed as "patches" (more
  7673. details to follow).
  7674.  
  7675. Credits
  7676. *******
  7677.  
  7678.    The authors would like to thank:
  7679.  
  7680.    * Commodore-Amiga.
  7681.  
  7682.    * Our beta testers.
  7683.  
  7684.    * Our parents, for their support (especially our mum for also
  7685.      helping with the posting and packing!!!).
  7686.  
  7687.    * Larry Hickmott, for his help and support and the time he's put
  7688.      into creating the printed manual.
  7689.  
  7690.    * Matt Dillon, for the `Dice' C compiler.
  7691.  
  7692.    * SAS Institute, for the `SAS/C' C compiler.
  7693.  
  7694.    * Ian OConner, for `The Designer' - used to do all the GUI windows
  7695.      design.
  7696.  
  7697.    * Michael Balzer, for `ARexxBox' - used to implement the ARexx port.
  7698.  
  7699.    * Jonathan Forbes, for `LX' - used to decompress the .lha files in
  7700.      the distribution.
  7701.  
  7702.    * All the public domain / freeware / shareware authors, for loads of
  7703.      great software.
  7704.  
  7705.    * To those on the comp.sys.amiga.programmer newsgroup who've
  7706.      responded to our programming problems.
  7707.  
  7708.    * The Independant JPEG Group, for their essential JPEG code and
  7709.      information.
  7710.  
  7711.    * All those involved with the excellent TeX and `TeXinfo' packages.
  7712.  
  7713. Future additions
  7714. ****************
  7715.  
  7716.    The following features will probably be added to future versions of
  7717. the packages (roughly in order):
  7718.  
  7719.    * Making the effects external modules.
  7720.  
  7721.    * Spare buffer.
  7722.  
  7723.    * Alpha channel buffer.
  7724.  
  7725.    * Aspect ratio correction in the preview window.
  7726.  
  7727.    * ARexx macro record.
  7728.  
  7729.    * Halftoning operators.
  7730.  
  7731.    * Image rotation.
  7732.  
  7733.    * Write a separate program used to build ARexx batch processing
  7734.      scripts by simply clicking on the actions you wish to perform.
  7735.  
  7736.    * Toolbar.
  7737.  
  7738. TextureStudio
  7739. *************
  7740.  
  7741.    Brief description:
  7742.  
  7743.    TextureStudio supports the loading of texture modules in Imagine3
  7744. format. The parameters of the texture can quickly and easily be
  7745. adjusted by means of slider gadgets or by typing in the numbers. The
  7746. texture can then be mapped onto a plane, cylinder or sphere and
  7747. rendered to a preview screen and/or as a 24-bit image to disk.
  7748.  
  7749.    Many aspects of the texture and render can be altered including axis
  7750. position/alignment/size, lighting settings, object colours, object size
  7751. etc.
  7752.  
  7753.    TextureStudio allows the user to quickly render the texture and
  7754. explore the effects of changing various parameters without the need to
  7755. ray-trace a new image each time something altered.
  7756.  
  7757.    TextureStudio can render images to disk in IFF-ILBM24, JPEG or Targa
  7758. format. This allows high quality images to be rendered and loaded into
  7759. other programs. 24-bit images of any size can be rendered, regardless
  7760. of memory available.
  7761.  
  7762.    Some example textures are included in the distribution but Imagine3
  7763. is required to be able to use it's textures.
  7764.  
  7765.    List of feature:
  7766.  
  7767.    * Supports Imagine3 texture format.
  7768.  
  7769.    * Control of features via ARexx port.
  7770.  
  7771.    * Render unlimited number of textures simultaneously.
  7772.  
  7773.    * Render to HAM screen and 24-bit images on all Amigas.
  7774.  
  7775.    * Render 24-bit images of any size onto disk in IFF-ILBM24, JPEG or
  7776.      Targa format, regardless of memory available.
  7777.  
  7778.    * Saving of HAM preview screen to disk.
  7779.  
  7780.    * Support for colour, filter and bump type textures.
  7781.  
  7782.    * Easy adjustment of parameters by means of slider gadgets.
  7783.  
  7784.    * Map textures onto a plane, cylinder or sphere.
  7785.  
  7786.    * Control of light colour, distance, position, backlighting and
  7787.      intensity.
  7788.  
  7789.    * Adjustment of axis alignment, size and position.
  7790.  
  7791.    * Control of object size, visible width and image aspect ratio.
  7792.  
  7793.    * Multiple pass render to allow quick preview of image whilst it
  7794.      renders.
  7795.  
  7796.    * 5 levels of anti-aliasing available.
  7797.  
  7798.    * Preview colours with colourbox window.
  7799.  
  7800.    * Alter render screens width, height and screenmode.
  7801.  
  7802.    * Control of all main functions from floating windows.
  7803.  
  7804.    * Optimised code for 68881 and 68882 FPU's for maximum speed.
  7805.  
  7806.    * Render plane, cylinder or sphere without any texture to quickly
  7807.      set up lighting etc.
  7808.  
  7809.    * Loading and saving of textures settings, parameters and axis
  7810.      positions.
  7811.  
  7812.    * Render preferences to alters speed and accuracy of render.
  7813.  
  7814.    * Configure window positions, screenmode, default settings and then
  7815.      save preferences to disk.
  7816.  
  7817.    * Runs on all Amigas with Workbench2.04 or above and an FPU
  7818.      (floating point unit).
  7819.  
  7820.    * Standard Workbench2 interface.
  7821.  
  7822.    * Uses public screen.
  7823.  
  7824.    Shareware version:
  7825.  
  7826.    The shareware version is limited in that only the first 8 parameters
  7827. of the texture can be adjusted. No other features have been removed.
  7828.  
  7829.    The full version allows all 16 parameters to be altered.
  7830.  
  7831.    See How to register, for details on how to register. Registration is
  7832. 10UK pounds or 20US dollars.
  7833.  
  7834.